<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-22809997</id><updated>2011-11-28T08:01:29.975+08:00</updated><category term='urlloader'/><category term='ibator'/><category term='flash'/><category term='pm'/><category term='decouple web development'/><category term='free installer'/><category term='slides'/><category term='asynchronized web application'/><category term='continuous integration'/><category term='javascript'/><category term='web'/><category term='apple'/><category term='firebug'/><category term='小楼听雨'/><category term='svnsync'/><category term='abator'/><category term='CI'/><category term='regexp'/><category term='apply'/><category term='event bus'/><category term='delphi'/><category term='test'/><category term='记录'/><category term='taffy db'/><category term='css'/><category term='unit test'/><category term='js'/><category term='plugin'/><category term='python'/><category term='extends'/><category term='player'/><category term='javascript database'/><category term='model dialog'/><category term='performance'/><category term='w3c standard'/><category term='observer pattern'/><category term='getComputedStyle'/><category term='cruise'/><category term='timing'/><category term='event driven'/><category term='继承'/><category term='database'/><category term='offset'/><category term='ibatis'/><category term='decouple'/><category term='partible bussiness logic'/><category term='java'/><category term='mysql'/><category term='javascript event bus'/><category term='patterns'/><category term='ajax'/><category term='微距'/><category term='foreignkey'/><category term='xlty'/><category term='lucene'/><category term='computed dom style'/><category term='getPropertyValue'/><category term='sanlitun'/><category term='django'/><category term='jiffy'/><category term='number format'/><category term='config'/><category term='filter'/><category term='hot area'/><category term='online'/><category term='jquery'/><category term='影评'/><category term='drag drop'/><category term='trac'/><category term='photo'/><category term='ajax test'/><category term='ibatis code generator'/><category term='网摘'/><category term='scrum'/><category term='成功'/><category term='sql'/><category term='tomcat log'/><category term='call'/><category term='orm'/><category term='callee'/><category term='doctype'/><category term='memcached'/><category term='swf'/><category term='exit'/><category term='access log'/><category term='ubuntu'/><category term='connection pool'/><category term='iptables'/><category term='email mapping'/><category term='notification'/><category term='摄影'/><category term='tree'/><category term='svn'/><category term='js event bus'/><title type='text'>小楼听雨</title><subtitle type='html'>Java, Python, IR, KM, NLP, JS, Web2.0</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default?start-index=101&amp;max-results=100'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>107</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-22809997.post-6304517246596880959</id><published>2010-04-01T16:34:00.001+08:00</published><updated>2010-04-01T16:34:36.430+08:00</updated><title type='text'>硬盘多了, 分区多了, 想获得每个分区的uuid来统一管理</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; "&gt;硬盘多了, 分区多了, 想获得每个分区的uuid来统一管理一下: &lt;br&gt;$# blkid /dev/hdb5 &lt;br&gt;&lt;br&gt;/dev/hdb5: UUID=&amp;quot;6fa9e80b-5eba-42b1-994b-6fd76158335e&amp;quot; SEC_TYPE=&amp;quot;ext2&amp;quot; TYPE=&amp;quot;ext3&amp;quot;&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6304517246596880959?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6304517246596880959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6304517246596880959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6304517246596880959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6304517246596880959'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2010/04/uuid.html' title='硬盘多了, 分区多了, 想获得每个分区的uuid来统一管理'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5568724890438151681</id><published>2010-03-04T10:06:00.001+08:00</published><updated>2010-03-04T10:06:03.330+08:00</updated><title type='text'>持续集成工具 - bitten</title><content type='html'>持续集成工具 - bitten &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5568724890438151681?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5568724890438151681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5568724890438151681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5568724890438151681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5568724890438151681'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2010/03/bitten.html' title='持续集成工具 - bitten'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-8560800742014337518</id><published>2010-01-26T22:59:00.001+08:00</published><updated>2010-01-26T22:59:53.169+08:00</updated><title type='text'>JQuery 1.4 api</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;JQuery 1.4 api&lt;/p&gt;主旨： &lt;a href='http://api.jquery.com/category/version/1.4/'&gt;&lt;a href='http://api.jquery.com/category/version/1.4/'&gt;http://api.jquery.com/category/version/1.4/&lt;/a&gt;&lt;/a&gt; （&lt;a href='http://www.google.com/sidewiki/entry/101418406334272045947/id/A21_IqYhH5MGwwZ02hoym3QGMes'&gt;查看 Google 边栏评注&lt;/a&gt;）&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-8560800742014337518?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/8560800742014337518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=8560800742014337518' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8560800742014337518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8560800742014337518'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2010/01/jquery-14-api.html' title='JQuery 1.4 api'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4099763100275917656</id><published>2009-11-26T21:08:00.001+08:00</published><updated>2009-11-26T21:08:18.532+08:00</updated><title type='text'>赤壁怀古</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 14px; color: rgb(102, 102, 102); line-height: 21px; "&gt;赤壁怀古&lt;br style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt; &lt;br style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;苏 轼&lt;br style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt; &lt;br style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;大江东去，浪淘尽、千古风流人物。故垒西边，人道是、三国周郎赤壁。乱石崩云，惊涛裂岸，卷起千堆雪。江山如画，一时多少豪杰！&lt;br style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt; &lt;br style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;遥想公瑾当年，小乔初嫁了，雄姿英发。羽扇纶巾，谈笑间、樯橹灰飞烟灭。故国神游，多情应笑我、早生华发，人生如梦，一尊还酹江月。&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4099763100275917656?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4099763100275917656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4099763100275917656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4099763100275917656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4099763100275917656'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/11/blog-post_26.html' title='赤壁怀古'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3445102489714627849</id><published>2009-11-04T12:25:00.001+08:00</published><updated>2009-11-04T12:25:07.137+08:00</updated><title type='text'>解决linux下firefox中flash插件乱码问题</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;解决linux下firefox中flash插件乱码问题, 转自: &lt;span class="Apple-style-span" style="border-collapse: separate; font-family: arial; white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "&gt;&lt;a href="http://roclinux.cn/?p=1189"&gt;http://roclinux.cn/?p=1189&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt; &lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; white-space: pre; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: arial; white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;br&gt; &lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(100, 100, 100); line-height: 12px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; text-align: left; line-height: 1.2; "&gt; 在Linux下用Firefox浏览有Flash的网页时，经常碰到有些文字不能正常显示，有些还可能显示乱码，比如&lt;a href="http://www.google.cn/music" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; color: rgb(224, 129, 5); text-decoration: underline; cursor: pointer; "&gt;Google 的在线音乐&lt;/a&gt;播放音乐时，完全显示不了文字。&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; text-align: left; line-height: 1.2; "&gt; &lt;span class="fullpost" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; "&gt;解决方法很简单，操作如下：&lt;br&gt; &lt;/span&gt;&lt;span id="more-1189" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; "&gt;&lt;/span&gt;&lt;span class="fullpost" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; "&gt;修改/etc/fonts/conf.d/49-sansserif.conf&lt;/span&gt;&lt;/p&gt; &lt;pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: &amp;#39;Andale Mono&amp;#39;, &amp;#39;Lucida Console&amp;#39;, Monaco, fixed, monospace; vertical-align: baseline; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(153, 153, 153); border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, 153, 153); overflow-x: auto; overflow-y: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 708px; "&gt; &lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: &amp;#39;Courier New&amp;#39;, Courier, monospace; vertical-align: baseline; "&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt; &amp;lt;!DOCTYPE fontconfig SYSTEM &amp;quot;fonts.dtd&amp;quot;&amp;gt; &amp;lt;fontconfig&amp;gt; &amp;lt;!-- If the font still has no generic name, add sans-serif --&amp;gt; &amp;lt;match target=&amp;quot;pattern&amp;quot;&amp;gt;     &amp;lt;test qual=&amp;quot;all&amp;quot; name=&amp;quot;family&amp;quot; compare=&amp;quot;not_eq&amp;quot;&amp;gt;         &amp;lt;string&amp;gt;sans-serif&amp;lt;/string&amp;gt;     &amp;lt;/test&amp;gt;     &amp;lt;test qual=&amp;quot;all&amp;quot; name=&amp;quot;family&amp;quot; compare=&amp;quot;not_eq&amp;quot;&amp;gt;         &amp;lt;string&amp;gt;serif&amp;lt;/string&amp;gt;     &amp;lt;/test&amp;gt;     &amp;lt;test qual=&amp;quot;all&amp;quot; name=&amp;quot;family&amp;quot; compare=&amp;quot;not_eq&amp;quot;&amp;gt;         &amp;lt;string&amp;gt;monospace&amp;lt;/string&amp;gt;     &amp;lt;/test&amp;gt;     &amp;lt;edit name=&amp;quot;family&amp;quot; mode=&amp;quot;append_last&amp;quot;&amp;gt;         &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; color: rgb(255, 0, 0); "&gt;&amp;lt;string&amp;gt;sans-serif&amp;lt;/string&amp;gt;&lt;/span&gt;     &amp;lt;/edit&amp;gt; &amp;lt;/match&amp;gt; &amp;lt;/fontconfig&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; text-align: left; line-height: 1.2; "&gt; 将上面的红色的内容改为：&lt;/p&gt;&lt;pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: &amp;#39;Andale Mono&amp;#39;, &amp;#39;Lucida Console&amp;#39;, Monaco, fixed, monospace; vertical-align: baseline; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(153, 153, 153); border-right-color: rgb(153, 153, 153); border-bottom-color: rgb(153, 153, 153); border-left-color: rgb(153, 153, 153); overflow-x: auto; overflow-y: auto; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); line-height: 14px; width: 708px; "&gt; &lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: &amp;#39;Courier New&amp;#39;, Courier, monospace; vertical-align: baseline; "&gt;&amp;lt;string&amp;gt;sans&amp;lt;/string&amp;gt; &lt;/code&gt;&lt;/pre&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-weight: inherit; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; text-align: left; line-height: 1.2; "&gt; 保存一下，在firefox里刷新一下，问题就解决了。&lt;/p&gt;&lt;/span&gt;&lt;/div&gt; &lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3445102489714627849?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3445102489714627849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3445102489714627849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3445102489714627849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3445102489714627849'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/11/linuxfirefoxflash.html' title='解决linux下firefox中flash插件乱码问题'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-102102158480336862</id><published>2009-11-01T15:49:00.001+08:00</published><updated>2009-11-01T15:49:44.815+08:00</updated><title type='text'>雪</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Simsun; font-size: medium; "&gt;&lt;div id="Title"&gt;&lt;table width="660" border="0" cellspacing="0" cellpadding="0" align="center"&gt;&lt;tbody&gt;&lt;tr valign="bottom"&gt;&lt;td height="30" align="center" colspan="2"&gt; &lt;font size="4"&gt;&lt;b&gt;《沁园春•雪》（1936年2月）&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="643" valign="top" align="right" class="txt12" style="font-family: 宋体; font-size: 12px; line-height: 12pt; text-decoration: none; "&gt;&lt;font color="#996600"&gt;&lt;/font&gt;&lt;/td&gt; &lt;td valign="top" width="17"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor="#999999"&gt;&lt;td height="1" valign="top" colspan="2"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" colspan="2"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;table width="650" border="0" cellspacing="0" cellpadding="0" align="center"&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div id="Content"&gt;&lt;span class="txt14" style="font-family: 宋体; font-size: 14.8px; line-height: 18px; text-decoration: none; "&gt;&lt;p align="center"&gt;&lt;font color="#800000"&gt;&lt;img alt="" hspace="0" src="http://news.xinhuanet.com/ziliao/2003-09/02/xinsrc_bfa23ce1eb6448838ef7df48668e08f4.jpg" align="baseline" border="0"&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#800000"&gt;&lt;font size="4"&gt;        　北国风光，千里冰封，万里雪飘。 &lt;br&gt;        　望长城内外，惟余莽莽； &lt;br&gt;        　大河上下，顿失滔滔。 &lt;br&gt;        　山舞银蛇，原驰蜡象，欲与天公试比高。 &lt;br&gt;        　须晴日，看红装素裹，分外妖娆。&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#800000" size="4"&gt;        　江山如此多娇，引无数英雄竞折腰。 &lt;br&gt;         　惜秦皇汉武，略输文采； &lt;br&gt;        　唐宗宋祖，稍逊风骚。 &lt;br&gt;        　一代天骄，成吉思汗，只识弯弓射大雕。 &lt;br&gt;        　俱往矣，数风流人物，还看今朝。&lt;/font&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-102102158480336862?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/102102158480336862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=102102158480336862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/102102158480336862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/102102158480336862'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/11/blog-post.html' title='雪'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2828297732109803177</id><published>2009-10-24T16:58:00.001+08:00</published><updated>2009-10-24T16:58:44.968+08:00</updated><title type='text'>Google Wave账户激活</title><content type='html'>&lt;div&gt;收到Google wave邀请并接受已经1周了, 今天终于收到激活通知函, 等的我花儿都谢了&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2828297732109803177?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2828297732109803177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2828297732109803177' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2828297732109803177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2828297732109803177'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/10/google-wave.html' title='Google Wave账户激活'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6605027773413252172</id><published>2009-10-20T18:24:00.001+08:00</published><updated>2009-10-20T18:24:21.813+08:00</updated><title type='text'>自动构建java jar library path命令</title><content type='html'>在指定目录运行此命令:&lt;div&gt;&lt;br clear="all"&gt;find ./ -name &amp;#39;*.jar&amp;#39;|paste -s -d :&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;输出:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;./spider.jar:./lib/nekohtml.jar:./lib/poi-scratchpad-3.0.1-FINAL.jar:./lib/jdom.jar:./lib/hessian-3.1.5.jar:./lib/hibernate3.jar:./lib/dom4j-1.6.1.jar:./lib/htmlparser.jar:./lib/jetty-6.1.9.jar:./lib/jstl.jar:./lib/log4j-1.2.11.jar:./lib/commons-pool-1.3.jar:./lib/cglib-2.1.3.jar:./lib/mysql-connector-java-5.0.5.jar:./lib/jaas.jar:./lib/chardet.jar:./lib/commons-validator.jar:./lib/standard.jar:./lib/FontBox-0.1.0.jar:./lib/jakarta-oro.jar:./lib/commons-fileupload.jar:./lib/jboss-common.jar:./lib/PDFBox-0.7.3.jar:./lib/commons-httpclient-3.1-rc1.jar:./lib/antlr-2.7.5H3.jar:./lib/antlr.jar:./lib/jboss-cache.jar:./lib/struts.jar:./lib/asm.jar:./lib/connector.jar:./lib/xml-apis.jar:./lib/asm-attrs.jar:./lib/jboss-jmx.jar:./lib/rome-0.9.jar:./lib/c3p0-0.9.0.jar:./lib/jetty-util-6.1.9.jar:./lib/ehcache-1.1.jar:./lib/servlet-api-2.5-6.1.9.jar:./lib/commons-digester.jar:./lib/commons-logging.jar:./lib/cpdet.jar:./lib/bcprov-jdk14-132.jar:./lib/ibatis-2.3.0.677.jar:./lib/jacc-1_0-fr.jar:./lib/eucita-common-0.7.1.jar:./lib/lucene-core-2.3.0.jar:./lib/commons-collections-2.1.1.jar:./lib/xerces-2.6.2.jar:./lib/commons-dbcp-1.2.2.jar:./lib/commons-lang-2.3.jar:./lib/poi-3.0.1-FINAL.jar:./lib/icu4j-3_8.jar:./lib/proxool-0.8.3.jar:./lib/jboss-system.jar:./lib/oscache-2.1.jar:./lib/db4o-6.3-java5.jar:./lib/concurrent-1.3.2.jar:./lib/commons-logging-1.0.4.jar:./lib/jgroups-2.2.8.jar:./lib/mail-1.4.jar:./lib/commons-beanutils.jar:./lib/swarmcache-1.0rc2.jar:./lib/jdbc2_0-stdext.jar:./lib/log4j-1.2.9.jar:./lib/jaxen-1.1-beta-7.jar:./lib/commons-codec-1.3.jar:./lib/bcmail-jdk14-132.jar:./lib/jta.jar&lt;/div&gt; &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;这样就可以自动构建java 的library path&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6605027773413252172?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6605027773413252172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6605027773413252172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6605027773413252172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6605027773413252172'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/10/java-jar-library-path.html' title='自动构建java jar library path命令'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-572730393702831056</id><published>2009-10-10T10:41:00.001+08:00</published><updated>2009-10-10T10:41:05.869+08:00</updated><title type='text'>宝宝9斤重了</title><content type='html'>昨天社区的医生来做探视, 称了一下宝宝, 9斤重了, 长的真快,  &lt;div&gt;宝宝腿上过敏, 起了一片小疙瘩, 让人好心疼啊.&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-572730393702831056?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/572730393702831056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=572730393702831056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/572730393702831056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/572730393702831056'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/10/9.html' title='宝宝9斤重了'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3600240513913157541</id><published>2009-10-07T14:51:00.001+08:00</published><updated>2009-10-07T14:51:38.328+08:00</updated><title type='text'>第一次洗澡</title><content type='html'>前天, 也就是10月5日, 宝宝第一次洗澡, 他有点害怕, 腿直挺挺的伸着, 小手用力抓着游泳圈, 一动也不动, 就像蒸了一个桑拿, 坚强的宝宝一直没有哭. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3600240513913157541?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3600240513913157541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3600240513913157541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3600240513913157541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3600240513913157541'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/10/blog-post_8861.html' title='第一次洗澡'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-848868047175633412</id><published>2009-10-07T14:49:00.001+08:00</published><updated>2009-10-07T14:49:08.143+08:00</updated><title type='text'>脐带掉了</title><content type='html'>昨天宝宝的脐带掉了&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-848868047175633412?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/848868047175633412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=848868047175633412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/848868047175633412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/848868047175633412'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/10/blog-post_07.html' title='脐带掉了'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-8600224533729552721</id><published>2009-10-03T10:37:00.001+08:00</published><updated>2009-10-03T10:37:44.219+08:00</updated><title type='text'>宝宝出生了</title><content type='html'>09-27（农历8月初九）， 宝宝出生了， 顺产的， 男婴，3880g，51cm，&lt;br&gt;很激动， 升级了!&lt;br&gt;名字暂定：李涵予&lt;br clear="all"&gt;就在这里记录宝宝的成长吧&lt;br&gt;&lt;br&gt;-- &lt;br&gt;&lt;br&gt;BeiJing China&lt;br&gt;小楼听雨&lt;br&gt;Blog: &lt;a href="http://xlty.blogspot.com"&gt;http://xlty.blogspot.com&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-8600224533729552721?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/8600224533729552721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=8600224533729552721' title='32 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8600224533729552721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8600224533729552721'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/10/blog-post.html' title='宝宝出生了'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>32</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4978009179124104583</id><published>2009-09-25T09:34:00.000+08:00</published><updated>2009-09-25T09:35:00.706+08:00</updated><title type='text'>更改Trac同步发送mail问题</title><content type='html'>&lt;div&gt;修改: trac/notification.py文件, 找到Notify.notify(self, resid)行: 改为:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;trigger = self&lt;/div&gt;&lt;div&gt;from threading import Thread&lt;/div&gt;&lt;div&gt;def run():                                                                                                              &lt;/div&gt; &lt;div&gt;  Notify.notify(trigger, resid)&lt;/div&gt;&lt;div&gt;Thread(target=run).start()&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4978009179124104583?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4978009179124104583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4978009179124104583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4978009179124104583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4978009179124104583'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/09/tracmail.html' title='更改Trac同步发送mail问题'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2105498237624058642</id><published>2009-09-15T12:10:00.001+08:00</published><updated>2009-09-15T12:10:04.722+08:00</updated><title type='text'>进度条简单实现</title><content type='html'>&lt;div&gt;&amp;lt;html&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&amp;lt;body&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&amp;lt;style&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;.lhcl_storagecluster_gauge {&lt;/div&gt; &lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;background-color:#F4F6FF;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;border:1px solid #668CD9;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;height:20px;&lt;/div&gt; &lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;width:50px;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&amp;lt;/style&amp;gt;&lt;/div&gt; &lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&amp;lt;div class=&amp;quot;lhcl_storagecluster_gauge&amp;quot; id=&amp;quot;lhid_storagecluster_gauge&amp;quot; style=&amp;quot;width: 56.75px; border-left-width: 11.25px;&amp;quot;/&amp;gt;&lt;/div&gt; &lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&amp;lt;/body&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/html&amp;gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2105498237624058642?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2105498237624058642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2105498237624058642' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2105498237624058642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2105498237624058642'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/09/blog-post.html' title='进度条简单实现'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7344568866953180207</id><published>2009-09-02T15:09:00.001+08:00</published><updated>2009-09-02T15:09:59.797+08:00</updated><title type='text'>shelve</title><content type='html'>&lt;pre&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;shelve&lt;/span&gt;  &lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;shelve&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;&lt;span class="highlight"&gt;open&lt;/span&gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c"&gt;# &lt;span class="highlight"&gt;open&lt;/span&gt; -- file may get suffix added by low-level&lt;/span&gt;                           &lt;span class="c"&gt;# library&lt;/span&gt;  &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;   &lt;span class="c"&gt;# store data at key (overwrites old data if&lt;/span&gt;                 &lt;span class="c"&gt;# using an existing key)&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;   &lt;span class="c"&gt;# retrieve a COPY of data at key (raise KeyError if no&lt;/span&gt;                 &lt;span class="c"&gt;# such key)&lt;/span&gt; &lt;span class="k"&gt;del&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;      &lt;span class="c"&gt;# delete data stored at key (raises KeyError&lt;/span&gt;                 &lt;span class="c"&gt;# if no such key)&lt;/span&gt; &lt;span class="n"&gt;flag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;has_key&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;   &lt;span class="c"&gt;# true if the key exists&lt;/span&gt; &lt;span class="n"&gt;klist&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c"&gt;# a list of all existing keys (slow!)&lt;/span&gt;  &lt;span class="c"&gt;# as d was &lt;span class="highlight"&gt;open&lt;/span&gt;ed WITHOUT writeback=True, beware:&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;xx&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c"&gt;# this works as expected, but...&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;xx&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;   &lt;span class="c"&gt;# *this doesn&amp;#39;t!* -- d[&amp;#39;xx&amp;#39;] is STILL range(4)!&lt;/span&gt;  &lt;span class="c"&gt;# having &lt;span class="highlight"&gt;open&lt;/span&gt;ed d without writeback=True, you need to code carefully:&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;xx&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;      &lt;span class="c"&gt;# extracts the copy&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;      &lt;span class="c"&gt;# mutates the copy&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;xx&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;temp&lt;/span&gt;      &lt;span class="c"&gt;# stores the copy right back, to persist it&lt;/span&gt;  &lt;span class="c"&gt;# or, d=shelve.&lt;span class="highlight"&gt;open&lt;/span&gt;(filename,writeback=True) would let you just code&lt;/span&gt; &lt;span class="c"&gt;# d[&amp;#39;xx&amp;#39;].append(5) and have it work as expected, BUT it would also&lt;/span&gt; &lt;span class="c"&gt;# consume more memory and make the d.close() operation slower.&lt;/span&gt;  &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;       &lt;span class="c"&gt;# close it&lt;/span&gt; &lt;/pre&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7344568866953180207?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7344568866953180207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7344568866953180207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7344568866953180207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7344568866953180207'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/09/shelve.html' title='shelve'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3366564783506354196</id><published>2009-08-13T16:18:00.001+08:00</published><updated>2009-08-13T16:18:06.697+08:00</updated><title type='text'>trac源代码阅读 - 6 python operators</title><content type='html'>结果在这里: &lt;a href="http://docs.python.org/library/operator.html"&gt;http://docs.python.org/library/operator.html&lt;/a&gt; &lt;div&gt;知道这些, 我们就可以像c那样重载操作符了&lt;/div&gt;&lt;div&gt;这应该也算是descriptor的一种吧&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3366564783506354196?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3366564783506354196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3366564783506354196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3366564783506354196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3366564783506354196'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/08/trac-6-python-operators.html' title='trac源代码阅读 - 6 python operators'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7847641938588396257</id><published>2009-08-05T23:55:00.003+08:00</published><updated>2009-08-07T09:09:47.495+08:00</updated><title type='text'>trac源代码阅读 - 5 python operators</title><content type='html'>&lt;b&gt;__add__ == +&lt;/b&gt;&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; class a(object):&lt;br /&gt;... def __or__(self, t):&lt;br /&gt;... return id(t)&lt;br /&gt;... def __add__(self, t):&lt;br /&gt;... return id(t)&lt;br /&gt;...&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; c = a()&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; a()+c&lt;br /&gt;13041552&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; id(c)&lt;br /&gt;13041552&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold" class="Apple-style-span"&gt;__sub__ == -&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; class a(object):&lt;/div&gt;&lt;div&gt;... def __or__(self, t):&lt;/div&gt;&lt;div&gt;... return id(t)&lt;/div&gt;&lt;div&gt;... def __add__(self, t):&lt;/div&gt;&lt;div&gt;... return id(t)&lt;/div&gt;&lt;div&gt;... def __sub__(self, t):&lt;/div&gt;&lt;div&gt;... return id(t)&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; c = a()&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; a()-c&lt;br /&gt;13041552&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; id(c)&lt;br /&gt;13041552&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;why? will continue in next post. &lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7847641938588396257?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7847641938588396257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7847641938588396257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7847641938588396257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7847641938588396257'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/08/trac-5-or-operator-ext.html' title='trac源代码阅读 - 5 python operators'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-1916531216928843132</id><published>2009-08-05T23:47:00.001+08:00</published><updated>2009-08-05T23:47:52.239+08:00</updated><title type='text'>trac源代码阅读 - 4 ("|" or operator)</title><content type='html'>&lt;div&gt;&lt;div&gt;&lt;b&gt;__or__ == |&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Error:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; a={&amp;#39;a&amp;#39;:1, }&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; b = lambda x: x*2&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; a | b&lt;/div&gt;&lt;div&gt;Traceback (most recent call last):&lt;/div&gt; &lt;div&gt;  File &amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;/div&gt;&lt;div&gt;TypeError: unsupported operand type(s) for |: &amp;#39;dict&amp;#39; and &amp;#39;function&amp;#39;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;the first object must has &amp;quot;__or__&amp;quot; method&lt;/b&gt;&lt;/div&gt; &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Right:&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; class a(object):&lt;/div&gt;&lt;div&gt;...     def __or__(self, t):&lt;/div&gt;&lt;div&gt;...             return id(t)&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; c = a()&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; d = a()&lt;/div&gt; &lt;div&gt;&amp;gt;&amp;gt;&amp;gt; c|d&lt;/div&gt;&lt;div&gt;13041232&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; id(c)&lt;/div&gt;&lt;div&gt;13041264&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; id(d)&lt;/div&gt;&lt;div&gt;13041232&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; c|&amp;quot;&amp;quot;&lt;/div&gt;&lt;div&gt;12492856&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Example: (&lt;span class="Apple-style-span" style="font-family: -webkit-monospace; font-size: 11px; border-collapse: collapse; "&gt;Transformer&lt;span class="Apple-style-span" style="border-collapse: separate; font-family: arial; font-size: 13px; "&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;a href="http://trac.edgewall.org/browser/trunk/sample-plugins/ticket_clone.py"&gt;http://trac.edgewall.org/browser/trunk/sample-plugins/ticket_clone.py&lt;/a&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-1916531216928843132?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/1916531216928843132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=1916531216928843132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1916531216928843132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1916531216928843132'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/08/trac-4-or-operator.html' title='trac源代码阅读 - 4 (&quot;|&quot; or operator)'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5485844073293587245</id><published>2009-08-04T11:02:00.001+08:00</published><updated>2009-08-04T11:02:49.828+08:00</updated><title type='text'>innerHTML中, p包含ul的问题</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: 13px; "&gt;一个dom节点给他innerHTML=&amp;quot;&amp;lt;p class=&amp;#39;temp&amp;#39;&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;test&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/p&amp;gt;&amp;quot;, 其中temp的样式为: .temp {display:none;}, 此时ul元素会被解析到p标签之外, IE, FF, Chrome都是如此, BUG or S&lt;span style="color: rgb(34, 34, 34); "&gt;&lt;font size="3"&gt;tandard?&lt;/font&gt;&lt;/span&gt;&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5485844073293587245?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5485844073293587245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5485844073293587245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5485844073293587245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5485844073293587245'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/08/innerhtml-pul.html' title='innerHTML中, p包含ul的问题'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-1912413557138990145</id><published>2009-07-22T23:21:00.001+08:00</published><updated>2009-07-22T23:21:58.734+08:00</updated><title type='text'>trac代码阅读3 - upgrade database</title><content type='html'>&lt;span class="nc"&gt;重写IEnvironmentSetupParticipant中的三个方法, 然后记得在__init__.py中import 你的&lt;/span&gt;&lt;span class="p"&gt;&lt;span class="nc"&gt;IEnvironmentSetupParticipant实现, 此时安装并启用插件之后, 就会出现: trac-admin /path/to/trac upgrade的提示&lt;/span&gt;&lt;span class="p"&gt;&lt;/span&gt;&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-1912413557138990145?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/1912413557138990145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=1912413557138990145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1912413557138990145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1912413557138990145'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/07/trac3-upgrade-database.html' title='trac代码阅读3 - upgrade database'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-1655391086848767461</id><published>2009-07-18T15:41:00.001+08:00</published><updated>2009-07-18T15:41:29.759+08:00</updated><title type='text'>trac代码阅读2 - yield expressions</title><content type='html'>&lt;div&gt;例:&lt;/div&gt;&lt;div&gt;def test(value = None):&lt;/div&gt;&lt;div&gt;    i = value or 0&lt;/div&gt;&lt;div&gt;    while i &amp;lt; 100:&lt;/div&gt;&lt;div&gt;        yield i&lt;/div&gt;&lt;div&gt;        i += 1&lt;/div&gt;&lt;div&gt;=============&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; s.next()&lt;/div&gt; &lt;div&gt;0&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; s.next()&lt;/div&gt;&lt;div&gt;1&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; s.next()&lt;/div&gt;&lt;div&gt;2&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt; s.next()&lt;/div&gt;&lt;div&gt;3&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;由外部逻辑控制此generator function的执行,  we called it: Semi-Coroutine&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-1655391086848767461?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/1655391086848767461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=1655391086848767461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1655391086848767461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1655391086848767461'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/07/trac2-yield-expressions.html' title='trac代码阅读2 - yield expressions'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4551397085927608776</id><published>2009-07-16T18:15:00.001+08:00</published><updated>2009-07-16T18:15:49.080+08:00</updated><title type='text'>trac代码阅读1</title><content type='html'>&lt;a href="http://trac.edgewall.org/browser/trunk/trac/web/href.py"&gt;http://trac.edgewall.org/browser/trunk/trac/web/href.py&lt;/a&gt;&lt;div&gt;&lt;b&gt;Highlights&lt;/b&gt;:&lt;br&gt; &lt;/div&gt;&lt;blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"&gt;__call__&lt;br&gt;__getattr__&lt;br&gt;doctest&lt;/blockquote&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4551397085927608776?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4551397085927608776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4551397085927608776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4551397085927608776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4551397085927608776'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/07/trac1.html' title='trac代码阅读1'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-8452017189926028224</id><published>2009-06-30T23:02:00.001+08:00</published><updated>2009-06-30T23:02:36.166+08:00</updated><title type='text'>Automatic change your IP address in windows</title><content type='html'>netsh interface ip set address name=&amp;quot;本地连接&amp;quot; source=static addr=192.168.0.8 mask=255.255.255.0&lt;br&gt;netsh interface ip set address name=&amp;quot;本地连接&amp;quot; gateway=192.168.0.1 gwmetric=0&lt;br&gt;netsh interface ip set dns name=&amp;quot;本地连接&amp;quot; source=static addr=202.106.0.20 register=PRIMARY&lt;br&gt; netsh interface ip add dns name=&amp;quot;本地连接&amp;quot; addr=202.102.152.3 index=2&lt;br&gt;netsh interface ip add dns name=&amp;quot;本地连接&amp;quot; addr=210.82.5.1 index=3&lt;br&gt;netsh interface ip set wins name=&amp;quot;本地连接&amp;quot; source=static addr=none&lt;br&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-8452017189926028224?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/8452017189926028224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=8452017189926028224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8452017189926028224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8452017189926028224'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/06/automatic-change-your-ip-address-in.html' title='Automatic change your IP address in windows'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2803615502361248385</id><published>2009-06-20T23:42:00.001+08:00</published><updated>2009-06-20T23:42:57.884+08:00</updated><title type='text'>selenium 1.0发布了</title><content type='html'>一直关注selenium, 但是他的脚本录制功能对js的操作始终是无能为力, selenium 1.0发布之后, 通过试用, 对效果依然感到失望:(, &lt;div&gt;倒是HtmlUnit, 他的js支持, 包括js框架的支持都是相当不错的, 缺点就是要用java写UI测试用例:(, &lt;/div&gt;&lt;div&gt;自己动手写一个?&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2803615502361248385?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2803615502361248385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2803615502361248385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2803615502361248385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2803615502361248385'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/06/selenium-10.html' title='selenium 1.0发布了'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6629397638429004356</id><published>2009-05-31T01:49:00.000+08:00</published><updated>2009-05-31T01:50:01.890+08:00</updated><title type='text'>python charset detector</title><content type='html'>&lt;a href="http://chardet.feedparser.org/"&gt;http://chardet.feedparser.org/&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6629397638429004356?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6629397638429004356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6629397638429004356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6629397638429004356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6629397638429004356'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/05/python-charset-detector.html' title='python charset detector'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4954914233353784713</id><published>2009-05-28T21:56:00.000+08:00</published><updated>2009-05-28T21:57:41.003+08:00</updated><title type='text'>你可能不知道的MySQL</title><content type='html'>&lt;a title="Permanent Link to 你可能不知道的MySQL" href="http://www.fuchaoqun.com/2009/03/something-you-may-do-not-know-about-mysql/" rel="bookmark"&gt;你可能不知道的MySQL&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4954914233353784713?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4954914233353784713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4954914233353784713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4954914233353784713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4954914233353784713'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/05/mysql.html' title='你可能不知道的MySQL'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6252566723814045538</id><published>2009-04-05T18:06:00.001+08:00</published><updated>2009-04-05T18:06:33.278+08:00</updated><title type='text'>reset css</title><content type='html'>YUI style: &lt;a href="http://yui.yahooapis.com/2.7.0/build/reset/reset.css"&gt;http://yui.yahooapis.com/2.7.0/build/reset/reset.css&lt;/a&gt;&lt;br&gt;Eric Meyer: &lt;a href="http://meyerweb.com/eric/tools/css/reset/index.html"&gt;http://meyerweb.com/eric/tools/css/reset/index.html&lt;/a&gt;&lt;br&gt; 中文版分析: &lt;a href="http://shawphy.com/2009/03/my-own-reset-css.html"&gt;http://shawphy.com/2009/03/my-own-reset-css.html&lt;/a&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6252566723814045538?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6252566723814045538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6252566723814045538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6252566723814045538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6252566723814045538'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/04/reset-css.html' title='reset css'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2262532319076918178</id><published>2009-03-22T20:35:00.001+08:00</published><updated>2009-03-22T20:35:40.099+08:00</updated><title type='text'>文章推荐： 再见,Google</title><content type='html'>&lt;a href="http://www.yeeyan.com/articles/view/litianlei/34176"&gt;http://www.yeeyan.com/articles/view/litianlei/34176&lt;/a&gt;&lt;br&gt;支持google， 也支持作者。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2262532319076918178?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2262532319076918178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2262532319076918178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2262532319076918178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2262532319076918178'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/03/google.html' title='文章推荐： 再见,Google'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5879993194222260057</id><published>2009-03-15T22:34:00.001+08:00</published><updated>2009-03-15T22:34:01.706+08:00</updated><title type='text'>无废话谈项目经理 - 职责篇</title><content type='html'>项目经理的职责:&lt;br&gt;&lt;ol&gt;&lt;li&gt;   项目管理控制能力&lt;/li&gt;&lt;li&gt;    每个项目组内部都是存在矛盾的，能够控制项目组的矛盾不被激化&lt;/li&gt;&lt;li&gt;    团队建设&lt;/li&gt;&lt;/ol&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5879993194222260057?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5879993194222260057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5879993194222260057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5879993194222260057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5879993194222260057'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/03/blog-post.html' title='无废话谈项目经理 - 职责篇'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5502452247610214302</id><published>2009-03-13T19:01:00.001+08:00</published><updated>2009-03-13T19:01:06.547+08:00</updated><title type='text'>查看linux系统io状态</title><content type='html'>查看linux系统io状态 vmstat 1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5502452247610214302?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5502452247610214302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5502452247610214302' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5502452247610214302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5502452247610214302'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/03/linuxio.html' title='查看linux系统io状态'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4065792033872881544</id><published>2009-03-08T23:37:00.001+08:00</published><updated>2009-03-08T23:37:12.038+08:00</updated><title type='text'>[转] how to find a good web hosting</title><content type='html'>&lt;a href="http://meditic.com/how-to-find-a-good-web-hosting/"&gt;http://meditic.com/how-to-find-a-good-web-hosting/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4065792033872881544?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4065792033872881544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4065792033872881544' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4065792033872881544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4065792033872881544'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/03/how-to-find-good-web-hosting.html' title='[转] how to find a good web hosting'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2138594247103920107</id><published>2009-03-08T23:31:00.001+08:00</published><updated>2009-03-08T23:31:07.249+08:00</updated><title type='text'>[转] 关于0.9999....=1的证明</title><content type='html'>&lt;a href="http://www.matrix67.com/blog/archives/1301"&gt;http://www.matrix67.com/blog/archives/1301&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2138594247103920107?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2138594247103920107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2138594247103920107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2138594247103920107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2138594247103920107'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/03/099991.html' title='[转] 关于0.9999....=1的证明'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5198595030382427281</id><published>2009-03-07T21:24:00.001+08:00</published><updated>2009-03-07T21:24:43.618+08:00</updated><title type='text'>Javascript Regex Generator</title><content type='html'>&lt;a href="http://www.jslab.dk/tools.regex.php"&gt;http://www.jslab.dk/tools.regex.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5198595030382427281?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5198595030382427281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5198595030382427281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5198595030382427281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5198595030382427281'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/03/javascript-regex-generator.html' title='Javascript Regex Generator'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7214276302468764893</id><published>2009-03-07T12:59:00.001+08:00</published><updated>2009-03-07T12:59:13.126+08:00</updated><title type='text'>文章推荐: make it run first(工程传奇 - 会飞的猪)</title><content type='html'>详见: &lt;a href="http://blog.csdn.net/longshanks/archive/2009/01/09/3739463.aspx"&gt;http://blog.csdn.net/longshanks/archive/2009/01/09/3739463.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7214276302468764893?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7214276302468764893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7214276302468764893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7214276302468764893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7214276302468764893'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/03/make-it-run-first.html' title='文章推荐: make it run first(工程传奇 - 会飞的猪)'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4575207004818046216</id><published>2009-02-27T15:21:00.000+08:00</published><updated>2009-02-27T15:22:01.120+08:00</updated><title type='text'>Java编码转换核心</title><content type='html'>String encoding = &amp;quot;gb2312&amp;quot;;&lt;br&gt;        byte b[] = &amp;quot;你&amp;quot;.getBytes(&amp;quot;gb2312&amp;quot;);&lt;p&gt;        ByteToCharConverter convertor =&lt;br&gt;ByteToCharConverter.getConverter(encoding);&lt;br&gt;        //将byte转到制定编码&lt;br&gt;        char[] c = convertor.convertAll(b);&lt;p&gt;        for (int i = 0; i &amp;lt; c.length; i++) {&lt;br&gt;            System.out.println(c[i]+&amp;quot;--&amp;quot;);&lt;br&gt;        }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4575207004818046216?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4575207004818046216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4575207004818046216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4575207004818046216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4575207004818046216'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/02/java.html' title='Java编码转换核心'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2187349812598355337</id><published>2009-02-14T01:02:00.001+08:00</published><updated>2009-02-14T01:02:31.253+08:00</updated><title type='text'>Jennifer Love Hewitt</title><content type='html'>Jennifer Love Hewitt的两首好歌:&lt;br&gt;Take my heart back&lt;br&gt;Love will show you everything&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2187349812598355337?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2187349812598355337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2187349812598355337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2187349812598355337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2187349812598355337'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/02/jennifer-love-hewitt.html' title='Jennifer Love Hewitt'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6019651089674419475</id><published>2009-01-06T00:04:00.001+08:00</published><updated>2009-01-06T00:04:34.076+08:00</updated><title type='text'>使用 Google Gears 开发离线应用</title><content type='html'>具体参见: &lt;a href="http://docs.google.com/Doc?id=df2zxqbz_437dfp48jgq"&gt;http://docs.google.com/Doc?id=df2zxqbz_437dfp48jgq&lt;/a&gt;, google&lt;br&gt;blog的格式太烂了, 还是用docs好点.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6019651089674419475?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6019651089674419475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6019651089674419475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6019651089674419475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6019651089674419475'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/01/google-gears.html' title='使用 Google Gears 开发离线应用'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2284737869613413511</id><published>2009-01-01T00:52:00.001+08:00</published><updated>2009-01-01T00:52:31.932+08:00</updated><title type='text'>李开复在梅隆的演讲</title><content type='html'>&lt;a href="http://www.youtube.com/watch?v=sgDGNPnb124"&gt;http://www.youtube.com/watch?v=sgDGNPnb124&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2284737869613413511?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2284737869613413511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2284737869613413511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2284737869613413511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2284737869613413511'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2009/01/blog-post.html' title='李开复在梅隆的演讲'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7219415147951503443</id><published>2008-12-20T00:44:00.005+08:00</published><updated>2008-12-20T01:08:14.456+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='extends'/><title type='text'>用jQuery.extend遇到的问题, 与大家共勉</title><content type='html'>官方接口： jQuery.extend( [deep], target, object1, [objectN] )&lt;br /&gt;&lt;br /&gt;如果target未指定， 则jQuery名字空间接受extend后的属性, 但是, 如果object中包含dom属性, deep又设置为true的话, 则会出现recursively error, 因为dom树存在循环引用!&lt;br /&gt;&lt;ul&gt;&lt;li&gt;看代码就很容易明白了,&lt;/li&gt;&lt;li&gt; extend函数的核心:&lt;br /&gt;if ( deep &amp;amp;&amp;amp; copy &amp;amp;&amp;amp; typeof copy === "object" &amp;amp;&amp;amp; !copy.nodeType )&lt;br /&gt;   target[ name ] = jQuery.extend( deep,  src || ( copy.length != null ? [ ] : { } ), copy );&lt;/li&gt;&lt;li&gt;可以看到这里copy.nodeType处理了dom node,  就是为了避免这种递归, 但是当我们自己有个对象, 此对象是互相引用的结构时, 这个情况就再所难免了,  所以一定要注意&lt;/li&gt;&lt;li&gt;另外: $.ajax({param: ...}), 中的param, ajax函数内部就是一个jQuery.extend, 所以这里也要注意一下&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7219415147951503443?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7219415147951503443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7219415147951503443' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7219415147951503443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7219415147951503443'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/12/jqueryextend.html' title='用jQuery.extend遇到的问题, 与大家共勉'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6209484758237641290</id><published>2008-11-18T09:39:00.001+08:00</published><updated>2008-11-18T09:39:22.544+08:00</updated><title type='text'>今天整理文档, blog一下, 备忘: getNamedItem</title><content type='html'>getNamedItem以前做xml解析经常用到的函数, 在document dom中也是可用的,&lt;br&gt;用于获取某个标签的私有属性(非rfc标准的),&lt;br&gt;这个属性, IE会自动给解析出来, 例如dom.customize_field_name, 就直接可以访问,&lt;br&gt;Firefox却不会自动给解析,&lt;br&gt;只能用dom.attributes.getNamedItem(&amp;#39;customize_field_name&amp;#39;).value访问,&lt;p&gt;最后通用一点就是都用dom.attributes.getNamedItem(&amp;#39;customize_field_name&amp;#39;).value, IE下也是支持的&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6209484758237641290?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6209484758237641290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6209484758237641290' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6209484758237641290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6209484758237641290'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/11/blog-getnameditem.html' title='今天整理文档, blog一下, 备忘: getNamedItem'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7815520439266181128</id><published>2008-11-07T23:13:00.002+08:00</published><updated>2008-11-07T23:14:23.332+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notification'/><category scheme='http://www.blogger.com/atom/ns#' term='CI'/><category scheme='http://www.blogger.com/atom/ns#' term='continuous integration'/><category scheme='http://www.blogger.com/atom/ns#' term='email mapping'/><title type='text'>CI Email notification</title><content type='html'>在cruisecontrol标签之后,  project标签之前, 添加plugin, 方便多个project共享htmlemail的通用设置, 例:&lt;br /&gt;   &amp;lt;plugin name="htmlemail"&lt;br /&gt;  mailhost="&lt;a href="http://mail.mailserver.com/"&gt;mail.mailserver.com&lt;/a&gt;"&lt;br /&gt;  username="&lt;a href="mailto:notification@mailserver.com"&gt;notification@mailserver.com&lt;/a&gt;"&lt;br /&gt;  password="password"&lt;br /&gt;  reportsuccess="always"&lt;br /&gt;  returnaddress="&lt;a href="mailto:notification@mailserver.com"&gt;notification@mailserver.com&lt;/a&gt;"&lt;br /&gt;  skipusers="false"&lt;br /&gt;  subjectprefix="CI"&lt;br /&gt;  defaultsuffix=""&lt;br /&gt;  buildresultsurl="&lt;a href="http://serveraddress:7777/buildresults/$%7Bproject.name%7D"&gt;http://serveraddress:7777/buildresults/${project.name}&lt;/a&gt;"&lt;br /&gt; /&amp;gt;&lt;br /&gt;在project的publishers节点下, 添加htmlemail通知任务:&lt;br /&gt;&amp;lt;onfailure&amp;gt;&lt;br /&gt;&amp;lt;htmlemail&amp;gt;&lt;br /&gt;                    //只要构建失败, 就发邮件给emp1&lt;br /&gt;        &amp;lt;always address="&lt;a href="mailto:emp1@mailserver.com"&gt;emp1@mailserver.com&lt;/a&gt;"/&amp;gt;&lt;br /&gt;                    // emp2, emp3可以映射到&lt;a href="mailto:emp2@mailserver.com"&gt;emp2@mailserver.com&lt;/a&gt;, &lt;a href="mailto:emp3@mailserver.com"&gt;emp3@mailserver.com&lt;/a&gt;&lt;br /&gt;                    //此处设置的意思是, 如果本次构建失败了, 则通知提交代码的人 ,&lt;br /&gt;提交代码的人的SCM帐户名称从recently modifications中可以拿到,&lt;br /&gt;然后map就是完成从SCM帐户到email帐户的映射, alias ='emp2'中的emp2就表示SCM的帐户名称.&lt;br /&gt;        &amp;lt;map alias="emp2" address="&lt;a href="mailto:emp2@mailserver.com"&gt;emp2@mailserver.com&lt;/a&gt;"/&amp;gt;&lt;br /&gt;        &amp;lt;map alias="emp3" address="&lt;a href="mailto:emp3@mailserver.com"&gt;emp3@mailserver.com&lt;/a&gt;"/&amp;gt;&lt;br /&gt;&amp;lt;/htmlemail&amp;gt;&lt;br /&gt;&amp;lt;/onfailure&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7815520439266181128?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7815520439266181128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7815520439266181128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7815520439266181128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7815520439266181128'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/11/ci-email-notification.html' title='CI Email notification'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3870647101043684937</id><published>2008-11-07T01:20:00.002+08:00</published><updated>2008-11-07T22:42:16.498+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>John Resig</title><content type='html'>John Resig, the creator and lead developer of the jQuery JavaScript library.&lt;br /&gt;His blog address: &lt;a href="http://ejohn.org/"&gt;http://ejohn.org/&lt;/a&gt;, we can learn more about&lt;br /&gt;javascript from his articles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3870647101043684937?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3870647101043684937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3870647101043684937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3870647101043684937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3870647101043684937'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/11/john-resig.html' title='John Resig'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3619507531655427689</id><published>2008-11-07T01:01:00.003+08:00</published><updated>2008-11-07T22:47:47.320+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='callee'/><title type='text'>"Object()" or "new Object()" in javascript</title><content type='html'>We can implement an Object, which can be instance by "Object()" or&lt;br /&gt;"new Object()", here's an example:&lt;p&gt;function User(name, age){&lt;br /&gt;//if ( !(this instanceof User) )这个也是可以工作的, 但是arguments.callee更通用&lt;/p&gt;&lt;p&gt;if ( !(this instanceof arguments.callee) )&lt;br /&gt;  return new User(name, age);&lt;/p&gt;&lt;p&gt;  &lt;a href="http://this.name/"&gt;this.name&lt;/a&gt; = name + " - " + age;&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;var user = User("xlty", 27);  &amp;lt;==&amp;gt; var user = new User("xlty", 27);&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3619507531655427689?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3619507531655427689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3619507531655427689' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3619507531655427689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3619507531655427689'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/11/object-or-new-object-in-javascript.html' title='&quot;Object()&quot; or &quot;new Object()&quot; in javascript'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-13392381262364695</id><published>2008-11-07T00:48:00.005+08:00</published><updated>2008-11-07T22:51:30.215+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='call'/><category scheme='http://www.blogger.com/atom/ns#' term='apply'/><title type='text'>flexible arguments</title><content type='html'>more generic usage of "apply":&lt;p&gt;Math.min accept a list of number:&lt;br /&gt;&amp;gt; Math.min(1,43);&lt;/p&gt;&lt;p&gt;We want to pass an array to Math.min&lt;br /&gt;&amp;gt; Math.min.apply( Math, array );&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-13392381262364695?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/13392381262364695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=13392381262364695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/13392381262364695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/13392381262364695'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/11/flexible-arguments.html' title='flexible arguments'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5069579796302745103</id><published>2008-11-02T00:30:00.001+08:00</published><updated>2008-11-02T00:30:29.404+08:00</updated><title type='text'>ibm developerworks article: 高性能自旋锁 MCS Spinlock 的设计与实现</title><content type='html'>Recommended a googel article: 高性能自旋锁 MCS Spinlock 的设计与实现&lt;br&gt;source: &lt;a href="http://www.ibm.com/developerworks/cn/linux/l-cn-mcsspinlock/index.html?ca=drs-tp4108"&gt;http://www.ibm.com/developerworks/cn/linux/l-cn-mcsspinlock/index.html?ca=drs-tp4108&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5069579796302745103?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5069579796302745103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5069579796302745103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5069579796302745103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5069579796302745103'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/11/ibm-developerworks-article-mcs-spinlock.html' title='ibm developerworks article: 高性能自旋锁 MCS Spinlock 的设计与实现'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6101853813873354581</id><published>2008-10-31T23:05:00.002+08:00</published><updated>2008-11-07T22:53:48.718+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax test'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='unit test'/><title type='text'>实现了一个简单的js test工具集</title><content type='html'>一时兴起, 实现了一个简单的js测试框架, 结构如下:&lt;br /&gt;==========================================================================&lt;br /&gt;//测试项&lt;br /&gt;var TestEntry = function(id){&lt;br /&gt; return {&lt;br /&gt;               //目前只实现了一个简单的方法, 其他的可以自由扩展&lt;br /&gt;  assertTrue: function(result){&lt;br /&gt;   var r = ET.get(id);&lt;br /&gt;   r.append(result? "Ok" : "Error");&lt;br /&gt;   r.addClass(result? "ok" : "error");&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;//测试执行器&lt;br /&gt;var Test=function(){&lt;br /&gt; var mc;&lt;br /&gt; return {&lt;br /&gt;  init:function(dom){&lt;br /&gt;   ET.get(dom || document.body).append("&amp;lt;div&lt;br /&gt;id='messageconsole'&amp;gt;&amp;lt;b&amp;gt;Message console:&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;");&lt;br /&gt;   mc = ET.get("messageconsole");&lt;br /&gt;  },&lt;br /&gt;  addTest: function(msg){&lt;br /&gt;   var id = UUID.generate("v4");&lt;br /&gt;   mc.append("&amp;lt;br&amp;gt;&amp;lt;b class='item'&amp;gt;test "+msg+"  &amp;lt;b class='result'&lt;br /&gt;id='"+id+"'&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/b&amp;gt;");&lt;br /&gt;   return TestEntry(id);&lt;br /&gt;  },&lt;br /&gt;  reset: function(){&lt;br /&gt;   mc.html("&amp;lt;br&amp;gt;");&lt;br /&gt;  },&lt;br /&gt;  report: function(){&lt;br /&gt;                       //设置延时是为了, 等待异步执行的部分ajax测试完成&lt;br /&gt;   setTimeout(function(){&lt;br /&gt;    var total = ET.getByJQSelector("b.item").length;&lt;br /&gt;    var error = ET.getByJQSelector("b.error").length;&lt;br /&gt;    var ok = ET.getByJQSelector("b.ok").length;&lt;br /&gt;    mc.append("&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;"+&lt;br /&gt;     "&amp;lt;b class='item'&amp;gt;Totally "+total+" tests,&amp;lt;/b&amp;gt;"+&lt;br /&gt;     "&amp;lt;b class='passed'&amp;gt; passed "+ok+" tests,&amp;lt;/b&amp;gt;"+&lt;br /&gt;     "&amp;lt;b class='failed'&amp;gt; failed "+error+" tests,&amp;lt;/b&amp;gt;"+&lt;br /&gt;     "&amp;lt;b class='unfinished'&amp;gt; unfinished "+(total-ok-error)+" tests&amp;lt;/b&amp;gt;");&lt;br /&gt;    },&lt;br /&gt;   1000);&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}();&lt;br /&gt;==========================================================================&lt;br /&gt;css代码:&lt;br /&gt;.item {&lt;br /&gt; color: blue;&lt;br /&gt;}&lt;p&gt;.result, .unfinished, .failed {&lt;br /&gt; color: red;&lt;br /&gt;}&lt;br /&gt;.passed {&lt;br /&gt; color: #55FF55;&lt;br /&gt;}&lt;br /&gt;==========================================================================&lt;br /&gt;用法:&lt;br /&gt;Test.init();&lt;/p&gt;&lt;p&gt;//普通测试项&lt;br /&gt;Test.addTest("log message here").assertTrue(1+2==3);&lt;/p&gt;&lt;p&gt;//异步操作的测试&lt;br /&gt;var ajaxTest = Test.addTest("ajax request test");&lt;br /&gt;Ajax.request({data:{id:1}, url:'../getName.htm', callback:function(data){&lt;br /&gt;          ajaxTest.assertTrue(&lt;a href="http://data.name/"&gt;data.name&lt;/a&gt;='apple');&lt;br /&gt;     }&lt;br /&gt;});&lt;/p&gt;&lt;p&gt;Test.report();&lt;/p&gt;&lt;p&gt;解释说明:&lt;br /&gt;Test.addTest在系统中添加一条测试记录,&lt;br /&gt;返回一个TestEntry, 用返回的TestEntry的assert系列方法, 来断定此测试项的正确与否&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6101853813873354581?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6101853813873354581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6101853813873354581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6101853813873354581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6101853813873354581'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/js-test.html' title='实现了一个简单的js test工具集'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4853098387447757586</id><published>2008-10-30T23:46:00.001+08:00</published><updated>2008-10-30T23:46:40.453+08:00</updated><title type='text'>[转] 北京的慢性驱逐令</title><content type='html'>原文: &lt;a href="http://home.donews.com/donews/article/1/130211.html"&gt;http://home.donews.com/donews/article/1/130211.html&lt;/a&gt;&lt;br&gt;很有同感的一篇文章, 转来分享一下&lt;br&gt;&lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt; text-align: center;" align="center"&gt; &lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;离开北京已经有一年多了，但至今还是常有人不理解地问："为什么你在北京有房有车有公司，却会在一夜之间决定彻底离开北京？"问的朋友多了，于是，我想倒不如把我是如何"被北京抛弃"的原因说说，也好省些口舌。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;b style=""&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;北京的慢性驱逐令&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt; &lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;从&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;1996&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年的建军节乘火车到北京，直至&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;2007&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;8&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;月与人签订售房合同，我在北京整整生活了&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;11&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;个年头。其间，住过中央社会主义学院的办公楼，住过小南庄的居民楼，住过万寿寺的老院子，直至自己买楼置业。过去的&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;11&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年历历在目。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;说句实话，我还是比较喜欢北京人的，虽然对老北京不够上进和锐气有些失望，但多元的北京文化不像上海的市侩、小气，也不像南方人的生意、烦躁。恬淡、性情的文化使外来的人们感觉不到太强的排外感。倒是外来的人群对老北京有些"排内"。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;然而，我终究是成不了北京人的。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt; &lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;1998&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年，我跳槽到一家新的报社工作，报社提出员工档案要统一放到（原）电子人才中心管理，我托老爹去浙江丽水市最早分配的工作单位调档。结果告知：因为原来与单位签订的&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;5&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年劳动合同没有执行完，我就擅自离职，剩余年限需按每年&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;1000&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;元交钱后才能调档。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;我当时就有砍人的冲动：当时在丽水工作半年，一个月&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;400&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;元工资，一共才发了我二千多元的工资，现在居然要收我&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;4000&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;元——半年白干不说，还要倒贴钱。如果是大城市，我也就认了，丽水这么个"浙江的西藏"也值得我打破脑袋往里钻？&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;单位领导还算"仁慈"：你还没干满一年，按理，要照五年计算，我们就只算了你四年的钱。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt; &lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;后 来有一次，总编曾经提出可以帮我的户口"弄"到北京。当然，我因此会欠他老大的人情，我还不得不和报社签订长期的"卖身契"。考虑到用"自由换户口"不是 什么划算的"交易"，我也就没应这茬——户口这种老掉牙的玩意迟早会死掉的，说不定十年后就没什么用了，社会总不会倒退吧？&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;2000&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年底，我去了《计算机世界》报社。突然有一天，当时一位领导不知抽了什么风，要求员工把档案在限期时间前必须把档案调到北京市人才，否则工资只能拿到正常工资的&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;1/3&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;这一下，全报社的同事都忙活了起来，我当然也不例外。当时我的档案还在电子人才，当我去电子人才办调档手续的时候，被告知：户口不在北京的人员档案不能在北京不同档案管理中心之间直接调档，须先调回户口所在地，再调过来。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;于是，我把档案调回到了老家县城的人才中心。再委托人将档案调至北京市人才。过了很长时间，每次打电话，北京市人才总说没有我的档案。只好打电话问县人才，告之：档案被北京市人才退回去了。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;又打电话问北京市人才，工作人员说，你的档案在县人才，我们没法接收，你必须先高到当地地市一级以上的人才才可以调过来。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;我又托老爸将档案调到了当地市人才。又过了很长时间，北京市人才又说档案被打回去了，原因是我当初没有转正就离职，档案里没有"干部"身份。我终于明白了：北京是"干部"呆的地方，不是"干部"就免进。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;从此，我患上了档案过敏症——一提到档案，脑袋嗡嗡作响。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt; &lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;报社和我类似的情况很多，领导的"高招"最后不得不不了了之。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;过去在北京没有户口是无法上车牌的。尽管一直想自己买辆车，但一想到上车牌还是找北京本地户口的人"挂靠"，这又是件脑袋大的事。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;2001&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年十月，北京市宣布拥有工作寄住证（工作居住证的前身）的人可以允许上车牌。我的"寄住"证是前一家单位办的，没有按规定交回，不过快到期了。我赶紧挑了辆车去上牌，工作人员疑惑地看着我：这个玩意儿能上车牌吗？&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;你没看新闻吗？我心里忐忑不安地回答，紧盯着工作人员打电话询问的每一个动作和表情。看到他的脸皮松驰着，我心安了一点——总算有自己的车牌了！&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;2002&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年小家伙出生后，麻烦又要开始了：有小孩的日子过得很快，以后的上学又成了一个麻烦事。交赞助费倒在其次，更担心以后考大学——北京的教学应试能力没法和浙江比，小孩要在北京上学，回浙江考大学就惨了。原来大学同班的北京同学分数要低&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;200&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;分左右，这种成绩在浙江是上不了大学的。分数线的差异可能要了小孩未来的命。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;我第一次感到自己对中国的改革过乐观了：几千年的户籍制度改革比蜗牛都慢，而小孩却长得飞快。也许我们这一辈子是看不到真正的自由户籍制度的了。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;b style=""&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;离京：无奈的选择&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt; &lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;选择离开北京不是件容易的事，毕竟人的一生不会有太多的&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;11&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年。在北京，我从一个毛头小伙成了一个中年人。但最终，我决定离开北京——我想无论我多努力，我终究成不了北京人。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;2007&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年春节回家后，我断然决定：准备离开北京，停止公司开展新业务，老项目执行完后就关闭公司，卖房子离开。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;对南方人来说，北京是脏，北京是干，但其实这些都可以适应，而一次次政策性的歧视让人有不如奴隶的感觉——即使是奴隶，他的努力工作也多少会搏得主人的一些欢心；而那些对外地人的羁绊却像故宫的一重重门槛一样走不到头，而且坚不可摧。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;所以，故宫我是不喜欢去的，除了有一次陪长辈，我从未进去游玩过——在我看来，这是一个阵旧的，封建的象征，体制的"故宫"我已经走厌了，再不愿去看那形式的故宫。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;font face="Times New Roman"&gt;2007&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;年回到杭州，买了一套房子，找了一份工作，今年上半年时把户口转到了杭州，小孩也顺利地进入了小学。打工的日子花钱没像以前那么随意了，但我还是认为自己的决定并没有错。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;窗外秋雨迷离，我回过头去看看自己的脚印，一步一步从浙江走到北京，又走回到浙江。那一段激情燃烧的岁月，那一段北京的创业史都随风而去，只在记忆里隐约可见。&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MSONORMAL" style="margin: 7.8pt 0cm 0pt;"&gt;&lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;一段时间里，我一直在想：是我抛弃了北京，还是北京抛弃了我？我想也许在北京看来，我是一个寄住者，我去北京是和北京人抢地盘、抢资源的，所以，我遇到的事总会在有意无意地驱逐我。一些朋友从国外回来，最后又走了，我于是想：是祖国抛弃了他们，还是他们抛弃了祖国？&lt;/span&gt;&lt;span style="letter-spacing: 1pt;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;span style="font-family: 宋体; letter-spacing: 1pt;"&gt;中 国太多的东西沉淀了几千年，以至于每个人对它熟视无睹。当人们习惯成自然的时候，不合理也变成了合理。就像有多少人知道蛋白精的存在却当成了一件合理的 事，这是一种可怕的沉沦，这种沉沦的更可怕之处在于沉沦者的不自知——用人血馒头治痨病的人还隐藏于每一个人的心灵深处，它因此影响着中国的政治、经济、 文化和所有的社会环境。&lt;/span&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4853098387447757586?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4853098387447757586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4853098387447757586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4853098387447757586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4853098387447757586'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/blog-post_30.html' title='[转] 北京的慢性驱逐令'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6835733136091422582</id><published>2008-10-30T22:34:00.003+08:00</published><updated>2008-11-07T22:54:43.015+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='drag drop'/><category scheme='http://www.blogger.com/atom/ns#' term='tree'/><title type='text'>JQuery 树插件介绍: jQuery SimpleTree Drag&amp;Drop plugin</title><content type='html'>&lt;b&gt;发现&lt;/b&gt;一个很好的树插件: &lt;a href="http://news.kg/wp-content/uploads/tree/"&gt;&lt;b&gt;jQuery SimpleTree Drag&amp;amp;Drop&lt;/b&gt;&lt;/a&gt;, 感觉很好,  代码质量不错,  支持拖拽, 风格清晰, 这里推荐一下. Demo看&lt;a href="http://news.kg/wp-content/uploads/tree/d&amp;amp;d/"&gt;这里&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6835733136091422582?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6835733136091422582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6835733136091422582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6835733136091422582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6835733136091422582'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/jquery-jquery-simpletree-drag-plugin.html' title='JQuery 树插件介绍: jQuery SimpleTree Drag&amp;Drop plugin'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6996562372984101921</id><published>2008-10-18T00:05:00.002+08:00</published><updated>2008-10-19T21:07:02.520+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript database'/><category scheme='http://www.blogger.com/atom/ns#' term='taffy db'/><title type='text'>Taffy DB : A JavaScript database for your browser</title><content type='html'>&lt;b&gt;Taffy DB : A JavaScript database for your browser&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;Taffy DB is a free and opensource JavaScript library that acts as thin data layer inside Web 2.0 and Ajax applications.   &lt;br /&gt;&lt;br /&gt;  What makes it cool:    &lt;ul&gt;&lt;li&gt;Under 10K!&lt;/li&gt;&lt;li&gt;Simple, JavaScript Centric Syntax&lt;/li&gt;&lt;li&gt;Fast&lt;/li&gt;&lt;li&gt;Easy to include in any web application&lt;/li&gt;&lt;li&gt;Compatible with major Ajax libraries: YUI, JQuery, Dojo, Prototype, EXT, etc&lt;/li&gt;&lt;li&gt;CRUD Interface (Create, Read, Update, Delete)&lt;/li&gt; &lt;li&gt;Sorting&lt;/li&gt;&lt;li&gt;Looping&lt;/li&gt;&lt;li&gt;Advanced Queries&lt;/li&gt;&lt;/ul&gt;   &lt;br /&gt;  Think of it as a SQL database in your web browser.        &lt;br /&gt;&lt;br /&gt;Link To &lt;a href="http://taffydb.com/"&gt;Taffy DB&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6996562372984101921?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6996562372984101921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6996562372984101921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6996562372984101921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6996562372984101921'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/taffy-db-javascript-database-for-your.html' title='Taffy DB : A JavaScript database for your browser'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7125875789066966694</id><published>2008-10-15T00:14:00.004+08:00</published><updated>2008-10-15T00:17:54.580+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><title type='text'>最近动向</title><content type='html'>&lt;div dir="ltr"&gt;&lt;ol&gt;&lt;li&gt;正在比较深入的研究前台开发, 写一些小的框架.&lt;/li&gt;&lt;li&gt;研究SEO, Google Adsense, 正处于实验阶段, 本站就是实验室, 争取把"小楼听雨"给优化到google, baidu搜索结果的第一页, 这个任务可以比较重, 呵呵.&lt;/li&gt;&lt;li&gt;整理, 搭建公司的基础架构, 这一块任务比较重, 需要考虑的比较详细.&lt;/li&gt;&lt;li&gt;另外的一个django站点, 纯凭自己的爱好做着玩的也会在最近上线, 正好用来研究前台开发, 呵呵.&lt;/li&gt;&lt;li&gt;以后有了什么经验, 会及时拿来分享.&lt;br /&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7125875789066966694?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7125875789066966694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7125875789066966694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7125875789066966694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7125875789066966694'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/blog-post_15.html' title='最近动向'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-1243454647435646682</id><published>2008-10-14T00:39:00.004+08:00</published><updated>2008-10-15T00:18:17.729+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='abator'/><category scheme='http://www.blogger.com/atom/ns#' term='ibatis'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='ibator'/><category scheme='http://www.blogger.com/atom/ns#' term='ibatis code generator'/><title type='text'>A ibatis code generator - iBATOR</title><content type='html'>&lt;div dir="ltr"&gt;&lt;p&gt;iBATOR is a code generator for iBATIS. iBATOR will introspect a database  table (or many tables) and will generate iBATIS artifacts that can be used to  access the table(s). This abates some of the initial nuisance of setting up  objects and configuration files to interact with database tables. iBATOR seeks  to make a major impact on the large percentage of database operations that are  simple CRUD (Create, Retrieve, Update, Delete). You will still need to hand code  SQL and objects for custom queries, or stored procedures.&lt;/p&gt; &lt;p&gt;iBATOR will generate:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;SqlMap XML Files  &lt;/li&gt;&lt;li&gt;Java Classes to match the primary key and fields of the table(s)  &lt;/li&gt;&lt;li&gt;DAO Classes that use the above objects (optional)&lt;/li&gt;&lt;/ul&gt;Example Class Usage Notes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Example Class has ored &lt;code&gt;&lt;a&gt;Criteria&lt;/a&gt;&lt;/code&gt; list and every &lt;code&gt;&lt;a&gt;Criteria&lt;/a&gt;&lt;/code&gt; has many anded filed list&lt;/li&gt; &lt;/ul&gt;I want to implement a ibatis code generator some day, But I find it "unfortunately".&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-1243454647435646682?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/1243454647435646682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=1243454647435646682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1243454647435646682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1243454647435646682'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/ibatis-code-generator-ibator.html' title='A ibatis code generator - iBATOR'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6347004051504874388</id><published>2008-10-13T22:43:00.003+08:00</published><updated>2008-10-15T00:18:30.261+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='微距'/><category scheme='http://www.blogger.com/atom/ns#' term='摄影'/><title type='text'>A720IS的微距拍摄, 效果不错</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_3XWWjihzFrY/SPNfUkjxOBI/AAAAAAAADAc/dKqO2Azg4gM/s1600-h/IMG_3576.JPG"&gt;&lt;img style="margin: 0px 10px 10px 0px; clear: both; float: left;" alt="" src="http://1.bp.blogspot.com/_3XWWjihzFrY/SPNfUkjxOBI/AAAAAAAADAc/dKqO2Azg4gM/s320/IMG_3576.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3XWWjihzFrY/SPNfUoKZvUI/AAAAAAAADAk/as2LwNV4ytU/s1600-h/IMG_3577.JPG"&gt;&lt;img style="margin: 0px 10px 10px 0px; clear: both; float: left;" alt="" src="http://1.bp.blogspot.com/_3XWWjihzFrY/SPNfUoKZvUI/AAAAAAAADAk/as2LwNV4ytU/s320/IMG_3577.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_3XWWjihzFrY/SPNfU4LBF4I/AAAAAAAADAs/80tRq-9Tjew/s1600-h/IMG_3578.JPG"&gt;&lt;img style="margin: 0px 10px 10px 0px; clear: both; float: left;" alt="" src="http://2.bp.blogspot.com/_3XWWjihzFrY/SPNfU4LBF4I/AAAAAAAADAs/80tRq-9Tjew/s320/IMG_3578.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3XWWjihzFrY/SPNfU3bUbdI/AAAAAAAADA0/MOMSVg4tDm4/s1600-h/IMG_3610.JPG"&gt;&lt;/a&gt;&lt;div style="clear: both; text-align: left;"&gt;&lt;a href="http://picasa.google.com/blogger/" target="ext"&gt;&lt;img src="http://photos1.blogger.com/pbp.gif" alt="Posted by Picasa" style="border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="middle" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6347004051504874388?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6347004051504874388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6347004051504874388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6347004051504874388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6347004051504874388'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/a720is.html' title='A720IS的微距拍摄, 效果不错'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_3XWWjihzFrY/SPNfUkjxOBI/AAAAAAAADAc/dKqO2Azg4gM/s72-c/IMG_3576.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6587288462453770520</id><published>2008-10-11T02:27:00.004+08:00</published><updated>2008-10-15T00:15:17.048+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='getComputedStyle'/><category scheme='http://www.blogger.com/atom/ns#' term='getPropertyValue'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='computed dom style'/><title type='text'>Get Computed Style Attribute</title><content type='html'>&lt;div dir="ltr"&gt;when a dom style has been setted more than one times in css file, the final style should be computed, such as:&lt;br /&gt;css file:&lt;br /&gt;&lt;br /&gt;#abc{&lt;br /&gt; color: red;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;div #abc{&lt;br /&gt; color: red;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;html file:&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&amp;lt;div&amp;gt;&amp;lt;span id='abc'&amp;gt;text in span...&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;js code:&lt;br /&gt;&lt;br /&gt;var spanEl = document.getElementById('abc');&lt;br /&gt;var ret = document.defaultView.getComputedStyle( spanEl, null );&lt;br /&gt;var color = ret.getPropertyValue("color");&lt;br /&gt;&lt;br /&gt;so we can get the right style which appled to dom.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6587288462453770520?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6587288462453770520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6587288462453770520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6587288462453770520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6587288462453770520'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/get-computed-style-attribute.html' title='Get Computed Style Attribute'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5128531782056405164</id><published>2008-10-11T02:14:00.004+08:00</published><updated>2008-10-15T00:19:18.503+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='extends'/><title type='text'>js简单继承的实现 - 网上做法修正篇</title><content type='html'>&lt;div dir="ltr"&gt;&lt;h3&gt;网上有些继承prototype实现上有bug例如:&lt;/h3&gt;function base() {&lt;br /&gt;       this.member = ["dnnsun_Member",2,3,4];&lt;br /&gt;}&lt;br /&gt;var child=function(){&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;child.prototype=new base;&lt;br /&gt;var c1 = new child();&lt;br /&gt;var c2 = new child();&lt;br /&gt;c1.member[1]=333;&lt;br /&gt;alert(c2.member[1]);&lt;br /&gt;&lt;br /&gt;&lt;i style="color: rgb(255, 0, 0);"&gt;&lt;u&gt;&lt;b&gt;结果是: 333&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;h3&gt;&lt;span style="font-weight: normal;font-size:13;" &gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;base中如果有集合, 对象属性, 这种简单继承导致的后果是所有的child的实例都共享了base的同一个member属性. 所以要尽量避免此种情况, 尽量在父类中只是定义方法, 变量改为传入的方式. 估计这也是为什么jquery, ext等框架不强制继承的子类必须subclass_instance instanceof  superclass==true的原因.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5128531782056405164?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5128531782056405164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5128531782056405164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5128531782056405164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5128531782056405164'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/js_11.html' title='js简单继承的实现 - 网上做法修正篇'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6434734625525956283</id><published>2008-10-11T01:25:00.005+08:00</published><updated>2008-10-19T21:05:43.895+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='event driven'/><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='js event bus'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='asynchronized web application'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript event bus'/><category scheme='http://www.blogger.com/atom/ns#' term='decouple web development'/><category scheme='http://www.blogger.com/atom/ns#' term='partible bussiness logic'/><category scheme='http://www.blogger.com/atom/ns#' term='observer pattern'/><title type='text'>Event driven web application - javascript event bus</title><content type='html'>&lt;div dir="ltr"&gt;I implemented a javascript &lt;a href="http://xlty.blogspot.com/2008/10/event-bus-event-bus-javascript-js.html"&gt;event bus&lt;/a&gt; for asynchronized web application, and this article hasn't any relationship with Ajax and Dom events&lt;br /&gt;Using Event bus benefit your web application development, such as:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;low coupling between moudles&lt;/li&gt;&lt;li&gt;flexible event dispatcher&lt;/li&gt;&lt;li&gt;partible bussiness logic&lt;/li&gt;&lt;li&gt;consistent code style&lt;/li&gt;&lt;/ol&gt;This is a very sample demo code to guide you.&lt;br /&gt;I have two components in my web app, one is a tree, another is a grid list, when current highlighted tree node was been deleted, the grid list should load it's next sibling node's data.&lt;br /&gt;&lt;br /&gt;normally, we could write in tree.js:&lt;br /&gt;&lt;br /&gt;//delete current hightlighted tree node&lt;br /&gt;...&lt;br /&gt;GridList.clear();&lt;br /&gt;GridList.load(&lt;a href="http://next_sibling_node.name/"&gt;next_sibling_node.name&lt;/a&gt;)&lt;br /&gt;...&lt;br /&gt;but GridList was defined in grid.js, so tree and grid moudle was high coupled.&lt;br /&gt;&lt;br /&gt;in new asynchronized web application. we can write in tree.js:&lt;br /&gt;&lt;br /&gt;//delete current hightlighted tree node&lt;br /&gt;EventBus.publish("tree-node-deleted", node);&lt;br /&gt;&lt;br /&gt;and write in grid.js:&lt;br /&gt;&lt;br /&gt;EventBus.subscribe("tree-node-deleted", function(argObj){&lt;br /&gt; GridList.clear();&lt;br /&gt; GridList.load(argObj.name)&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;I think this is a good experence in web development.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6434734625525956283?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6434734625525956283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6434734625525956283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6434734625525956283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6434734625525956283'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/asynchronized-web-application-using.html' title='Event driven web application - javascript event bus'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7460954475592217323</id><published>2008-10-08T15:17:00.007+08:00</published><updated>2008-10-15T00:19:46.087+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='js event bus'/><category scheme='http://www.blogger.com/atom/ns#' term='event bus'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='decouple'/><title type='text'>利用event bus来降低前台业务代码耦合度, Event bus - javascript, js实现</title><content type='html'>&lt;div dir="ltr"&gt; &lt;div&gt;/*&lt;/div&gt;&lt;div&gt;           demo:&lt;/div&gt;&lt;div&gt;    var observer = function(paramObj){&lt;/div&gt;&lt;div&gt;                alert("bomb event comes!" + paramObj);&lt;/div&gt; &lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;//add business event listener&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    EventBus.subscribe("tree-node-change",observer);&lt;/div&gt; &lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;    //remove business event listener&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    //EventBus.unsubscribe("tree-node-change",observer);&lt;/div&gt; &lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;//publish business event&lt;br /&gt;  &lt;/div&gt;&lt;div&gt;            EventBus.publish("tree-node-change",{oldName:"abc", newName:"cdef", id: 123});&lt;/div&gt; &lt;div&gt;*/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/*&lt;/div&gt;&lt;div&gt;    ReadMe:&lt;/div&gt;&lt;div&gt;       Goal:  Using business event dispatcher to reduce code couple between web moudle,&lt;br /&gt;目标: 为了尽可能的减少模块之间业务逻辑的耦合度, 而开发了这个消息总线, 主要用于业务逻辑的事件传递&lt;/div&gt;&lt;div&gt;       使用规范: 每个js模块尽可能通过事件去通信, 减少模块之间的直接调用和依赖(耦合)&lt;/div&gt;&lt;div&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;var EventBus = function(){&lt;/div&gt; &lt;div&gt;        var observers={};&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        var publish=function(eventName, argObj){&lt;/div&gt;&lt;div&gt;                var obs = observers[eventName];&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                if(!obs){&lt;/div&gt;&lt;div&gt;                        return;&lt;/div&gt; &lt;div&gt;                }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                for(var i=0;i&amp;lt;obs.length;i++){&lt;/div&gt;&lt;div&gt;                        obs[i](argObj);&lt;/div&gt;&lt;div&gt;                }&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        var subscribe=function(eventName, observer){&lt;/div&gt; &lt;div&gt;                var obs = observers[eventName];&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                if(!obs){&lt;/div&gt;&lt;div&gt;                        obs=[];&lt;/div&gt;&lt;div&gt;                        observers[eventName]=obs;&lt;/div&gt;&lt;div&gt;                }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                obs.push(observer);&lt;/div&gt; &lt;div&gt;     }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    var unsubscribe=function(eventName, observer){&lt;/div&gt;&lt;div&gt;            var obs = observers[eventName];&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            if(!obs){&lt;/div&gt;&lt;div&gt;                    return;&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;            for(var i=0;i&amp;lt;obs.length;i++){&lt;/div&gt;&lt;div&gt;                    if(obs[i]==observer){&lt;/div&gt;&lt;div&gt;                            obs.splice(i,1);&lt;/div&gt;&lt;div&gt;                            break;&lt;/div&gt;&lt;div&gt;                    }&lt;/div&gt;&lt;div&gt;            }&lt;/div&gt; &lt;div&gt;    }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    var unsubscribeByObserver=function(observer){&lt;/div&gt;&lt;div&gt;            for(var eventName in observers){&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;            removeByName(eventName, observer);&lt;/div&gt; &lt;div&gt;            }&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;    return {&lt;/div&gt;&lt;div&gt;            publish:publish,&lt;/div&gt;&lt;div&gt;            subscribe:subscribe,&lt;/div&gt;&lt;div&gt;            unsubscribe:unsubscribe,&lt;/div&gt;&lt;div&gt;            subscribeByObserver:unsubscribeByObserver&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt; &lt;div&gt;}();&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7460954475592217323?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7460954475592217323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7460954475592217323' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7460954475592217323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7460954475592217323'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/event-bus-event-bus-javascript-js.html' title='利用event bus来降低前台业务代码耦合度, Event bus - javascript, js实现'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-551003485207143246</id><published>2008-10-06T01:03:00.003+08:00</published><updated>2008-10-15T00:19:59.745+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='影评'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><title type='text'>[转] 小三的爱情扒皮必修课 - 画皮精彩影评</title><content type='html'>&lt;div dir="ltr"&gt;  &lt;div style="display: block;"&gt; &lt;div&gt; &lt;div&gt; &lt;div&gt;    　　&lt;strong&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;　说是，小三必修课&lt;br /&gt;　　　　&lt;br /&gt;　　　　其实，是所有情场中人的扒皮戏。&lt;br /&gt;　　　　&lt;br /&gt;　　　　《画皮》是一个惊喜，有些是无心，有些是故意。&lt;br /&gt;　　　　&lt;br /&gt;　　　　因为戏路太善良，我们总是忍不住笑场。&lt;br /&gt;　　　　&lt;br /&gt;　　　　然而，面对，那些太刻意的真情告白……我们如果不笑，难道要跟着哭吗？&lt;br /&gt;　　　　&lt;br /&gt;　　　　这场戏，需要些时间沉淀，然后，就有人像我们回忆八十年代的港片一样来回忆这张《画皮》。&lt;br /&gt;　　　　&lt;br /&gt;　　　　不如把笑点抖一抖，顺便帮着大家扭曲一下逻辑。&lt;br /&gt;　　　　&lt;br /&gt;　　　　这个故事告诉我们生活中的许多大道理。&lt;br /&gt;　　　　&lt;br /&gt;　　　　故事的基本结构是这样的。&lt;br /&gt;　　　　&lt;br /&gt;　　　　&lt;br /&gt;　　　　&lt;br /&gt;　　　　陈坤和甄子丹本来是战友，两个人都喜欢赵薇。赵薇选择了嫁给陈坤，甄子丹愤而远走。&lt;br /&gt;　　　　画皮定律一：再好的朋友，抢一个心上人，也会翻脸。无论男女。&lt;br /&gt;　　　　&lt;br /&gt;　　　　陈坤救了一个女人周迅回家。周迅其实是妖怪。&lt;br /&gt;　　　　画皮定律二：如果一个有家的男人把一个单身女子带回家，这绝对是场冒险，不管这个姑娘会不会画皮。&lt;br /&gt;　　　　&lt;br /&gt;　　　　赵薇怀疑陈坤喜欢周迅，进而发觉周迅来了之后，城里开始死人。认准周迅就是妖怪，&lt;br /&gt;　　　　画皮定律三：如果一个女人发现自己的男人外面有了女人，那么到处跟人说那个女人是狐狸精，只能显得自己像个疯子，太小气。&lt;br /&gt;　　　　&lt;br /&gt;　　　　&lt;br /&gt;　　　　但是没有人相信她。她写信喊来了甄子丹。&lt;br /&gt;　　　　画皮定律四：还是去找自己的旧情人，是正路！（找旧情人来干什么，看你的兴趣）&lt;br /&gt;　　　　&lt;br /&gt;　　　　&lt;br /&gt;　　　　周迅想嫁给陈坤，不是做妾，而是做夫人。&lt;br /&gt;　　　　画皮定律五：如果一个小三，喜欢上了一个有妇之夫，又不像只是玩一玩就吃掉他，而是想要个名分，会搞得三个人都很凄惨。&lt;br /&gt;　　　　&lt;br /&gt;　　　　甄子丹来了，降魔者孙丽也来了，孙丽看着甄子丹很有感觉，甄子丹对孙丽也有点感觉。&lt;br /&gt;　　　　画皮定律六：男人终究是要变心的，不管他当初多么爱你，只不过是动手没动手的差别，而且，总是有更年轻的姑娘出现的！！&lt;br /&gt;　　　　&lt;br /&gt;　　　　还有个蜥蜴精追随周迅而来，蜥蜴精爱着狐狸精周迅，周迅不喜欢他。&lt;br /&gt;　　　　画皮定律七：讨厌长得不帅的男人，女人讨厌"长舌头"的男人，讨厌知道自己当年底细的男人，讨厌，吃的东西，跟自己口味不同的男人……之后数条，都是第一条的借口。&lt;br /&gt;　　　　&lt;br /&gt;　　　　&lt;br /&gt;　　　　甄子丹表示自己相信赵薇，赵薇说甄子丹是个好人。&lt;br /&gt;　　　　画皮定律八：如果一个人给你发了"好人卡"，基本来说，这个人打算送死你去，吃定你一辈子了。不知道逃的，是傻瓜。&lt;br /&gt;　　　　&lt;br /&gt;　　　　&lt;br /&gt;　　　　周迅想色诱陈坤，蜥蜴精吃醋，进攻陈坤，大闹府里。&lt;br /&gt;　　　　画皮定律九：在两个女人之间摇摆的男人，比较吃香。在两个男人之间摇摆的女人，其实比较危险。女人斗心计，男人斗体力。&lt;br /&gt;　　　　&lt;br /&gt;　　　　&lt;br /&gt;　　　　蜥蜴精又进攻赵薇，关键时刻，陈坤选择去保护赵薇。&lt;br /&gt;　　　　画皮定律十：所有的男人，都会先考虑自己的老婆的，小三们的悲哀……  其实，不是因为他更看重老婆，而是他的身份促使他必须先救自己的老婆，否则，会被人说，没有人味。&lt;br /&gt;　　　　&lt;br /&gt;　　　　周迅终于明白，陈坤更在乎身为老婆的赵薇。&lt;br /&gt;　　　　画皮定律十一：情人早晚会发现真相的，这个时候，怎么选择，能比较出一个人的智商。&lt;br /&gt;　　　　&lt;br /&gt;　　　　于是周迅直接胁迫赵薇离开，逼赵薇服毒。&lt;br /&gt;　　　　画皮定律十二：偷情的乐趣，就在于偷偷摸摸，有人争抢的感觉比较刺激，直接逼宫……注定是悲剧&lt;br /&gt;　　　　&lt;br /&gt;　　　　…………正邪开始大决战！！&lt;br /&gt;　　　　&lt;br /&gt;　　　　&lt;br /&gt;　　　　&lt;br /&gt;　　　　所谓，凡事，不能十三点。那就到此为止吧。&lt;br /&gt;　　　　&lt;br /&gt;　　　　爱情这种事情，都不能仔细推敲，一推敲，就千疮百孔。&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;              -- 爆音爆食 发布于：&lt;span&gt;2008-09-23 22:37&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-551003485207143246?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/551003485207143246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=551003485207143246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/551003485207143246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/551003485207143246'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/blog-post.html' title='[转] 小三的爱情扒皮必修课 - 画皮精彩影评'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4867330546098432199</id><published>2008-10-04T21:37:00.004+08:00</published><updated>2008-10-15T00:20:12.539+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='继承'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='extends'/><title type='text'>js简单继承的实现, 改进篇</title><content type='html'>&lt;div dir="ltr"&gt;&lt;h3 class="post-title entry-title"&gt; &lt;a href="http://xlty.blogspot.com/2008/06/js.html"&gt;前文表述: js简单继承的实现&lt;/a&gt;&lt;/h3&gt;前文问题:&lt;br /&gt;  alert(child instanceof base); 打印false,  此处并没有实现真正的继承&lt;br /&gt;&lt;br /&gt;改进:&lt;br /&gt;function base() {&lt;br /&gt;        this.member = "dnnsun_Member";&lt;br /&gt;        this.test=function(){&lt;br /&gt;            window.alert('in base');&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;base.prototype.test= function() {&lt;br /&gt;        window.alert("base member "+this.member);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function extend(child, b) {&lt;br /&gt;        b.call(child);&lt;br /&gt;        child.prototype=new b;&lt;br /&gt;}&lt;br /&gt;var childclass=function(){&lt;br /&gt;        this.test=function(){&lt;br /&gt;                  window.alert("in child");&lt;br /&gt;        }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;extend(childclass, base);&lt;br /&gt;&lt;br /&gt;child = new childclass;&lt;br /&gt;&lt;br /&gt;window.alert(child.member);&lt;br /&gt;window.alert(child.test);&lt;br /&gt;child.test();&lt;br /&gt;window.alert(child instanceof base);&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4867330546098432199?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4867330546098432199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4867330546098432199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4867330546098432199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4867330546098432199'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/js.html' title='js简单继承的实现, 改进篇'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-8412943131175615401</id><published>2008-10-04T18:36:00.003+08:00</published><updated>2008-10-15T00:20:26.936+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='w3c standard'/><category scheme='http://www.blogger.com/atom/ns#' term='doctype'/><title type='text'>不能没有doctype</title><content type='html'>&lt;div dir="ltr"&gt;* 有他的好处, 我这里放下不表, 今天就说说没有他时, 在开发中遇到的问题&lt;pre&gt;   * 在不同的浏览器下网页莫名其妙的布局问题&lt;/pre&gt;&lt;pre&gt;   * document.body与document.documentElement谁的属性是准的?&lt;/pre&gt;&lt;pre&gt;      * scrollLeft&lt;br /&gt;    * Right&lt;br /&gt;    * Top&lt;br /&gt;    * Bottom&lt;/pre&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-8412943131175615401?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/8412943131175615401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=8412943131175615401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8412943131175615401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8412943131175615401'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/doctype.html' title='不能没有doctype'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-8444829295902635586</id><published>2008-10-02T22:37:00.002+08:00</published><updated>2008-10-15T00:20:38.559+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><title type='text'>22条途径超频你的大脑</title><content type='html'>&lt;div dir="ltr"&gt;&lt;h1&gt;&lt;a href="http://www.yeeyan.com/articles/view/joshyu/290"&gt;22条途径超频你的大脑&lt;/a&gt;&lt;/h1&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-8444829295902635586?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/8444829295902635586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=8444829295902635586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8444829295902635586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8444829295902635586'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/10/22.html' title='22条途径超频你的大脑'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-1104991995775362055</id><published>2008-09-19T01:15:00.003+08:00</published><updated>2008-10-15T00:20:52.192+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='pm'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><title type='text'>精益管理在开发项目上的三大精髓</title><content type='html'>&lt;div dir="ltr"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; line-height: 24px;font-family:Verdana;font-size:16;"  &gt;&lt;a href="http://www.agiledon.com/post/2008/05/Lean-Management-Principle.aspx" class="taggedlink" style="margin: 0px 0px 20px; padding: 0px; -moz-background-clip: inherit; -moz-background-origin: inherit; -moz-background-inline-policy: inherit; text-decoration: none; position: relative; top: 4px; font-size: 18px; line-height: 25px; color: rgb(101, 101, 81); letter-spacing: -1px;"&gt;精益管理在开发项目上的三大精髓&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-1104991995775362055?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/1104991995775362055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=1104991995775362055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1104991995775362055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1104991995775362055'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/09/blog-post_19.html' title='精益管理在开发项目上的三大精髓'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7796355917481486345</id><published>2008-09-15T02:27:00.003+08:00</published><updated>2008-10-15T00:21:05.748+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><title type='text'>支付宝开始支持Firefox, 赞一个</title><content type='html'>&lt;div dir="ltr"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7796355917481486345?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7796355917481486345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7796355917481486345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7796355917481486345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7796355917481486345'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/09/firefox.html' title='支付宝开始支持Firefox, 赞一个'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5733570856854037094</id><published>2008-09-13T18:33:00.002+08:00</published><updated>2008-10-11T00:44:24.421+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu下映射windows系统中的硬盘盘符为固定名称, 并且可读写</title><content type='html'>&lt;div dir="ltr"&gt;修改/etc/fstab, 加入映射:&lt;br /&gt;/dev/hda1    /media/c    rw,relatime,user_i=0,group_id=0,nosuid,nodev,noatime,allow_other,ntfs    0    0&lt;br /&gt;/dev/hda5    /media/d    rw,relatime,user_i=0,group_id=0,nosuid,nodev,noatime,allow_other,ntfs    0    0&lt;br /&gt;/dev/hda6    /media/e    rw,relatime,user_i=0,group_id=0,nosuid,nodev,noatime,allow_other,ntfs    0    0&lt;br /&gt;即可&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5733570856854037094?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5733570856854037094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5733570856854037094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5733570856854037094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5733570856854037094'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/09/ubuntuwindows.html' title='Ubuntu下映射windows系统中的硬盘盘符为固定名称, 并且可读写'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2618812721151793090</id><published>2008-09-11T23:49:00.003+08:00</published><updated>2008-10-11T00:45:08.849+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pm'/><category scheme='http://www.blogger.com/atom/ns#' term='trac'/><title type='text'>晒一下用trac打造的任务管理+需求管理平台</title><content type='html'>&lt;div dir="ltr"&gt;- 基础&lt;br /&gt; 所需要组件(在&lt;a href="http://trac-hacks.org/"&gt;http://trac-hacks.org&lt;/a&gt;都能找到):&lt;br /&gt;  1. Trac 0.11.1 这个是必须的了&lt;br /&gt;  2. BatchModify 0.2.0 ticket批量修改工具&lt;br /&gt;  3. BreadCrumbsNavPlugin 0.1 最近访问的页面链接&lt;br /&gt;  4. ComponentsListMacro 在wiki上列出所有的components&lt;br /&gt;  5. PrivateWikis 1.0.0 基于path的wiki权限管理(trac-hacks上的不能工作, 需要修改一下, 需要patch请联系我)&lt;br /&gt;  6. TicketBox 0.11.1 在wiki上列出tickets, 可以用来动态生成报告&lt;br /&gt;  7. TicketValidator 0.1 ticket字段验证, 比如close状态时, 某个字段不能为空&lt;br /&gt;  8. TracAddCommentMacro 0.3 wiki comment插件&lt;br /&gt;  9. TracCustomRoadmap 0.4 custom roadmap&lt;br /&gt; 10. TracDiscussion 0.6 论坛&lt;br /&gt; 11. TracFullBlogPlugin 0.1 博客&lt;br /&gt; 12. TracMacroPost 0.2 wiki comment 依赖&lt;br /&gt; 13. TracTags 0.6 tag组件, 页面右下角显示tag, 可以形成tag云&lt;br /&gt; 14. TracTocMacro &lt;a href="http://11.0.0.3/"&gt;11.0.0.3&lt;/a&gt; Title of Content, 用来形成简洁的wiki页面index&lt;br /&gt; 15. TracWysiwyg 0.2 所见即所得wiki编辑器&lt;br /&gt; 16. TracXMLRPC 1.0.0 用来支持eclipse mylyn插件的rpc接口&lt;br /&gt; 17. Ticket-clone 顾名思义, 用来克隆ticket&lt;br /&gt; 18. Testingworkflow 测试工作流&lt;br /&gt;- 用途&lt;br /&gt; * 任务管理&lt;br /&gt;       * 增加ticket timing控制字段(开发人员实际用时, PM估计用时, 开发人员估计用时)&lt;br /&gt;       * 启用测试工作流&lt;br /&gt;       * 自定义扩展Priority中的Delay属性&lt;br /&gt;         * 增加&lt;br /&gt;          * Urgent&lt;br /&gt;          * Middle Term&lt;br /&gt;          * Long Term&lt;br /&gt;       * 自定义扩展Type属性(New, Bug, Improvement)&lt;br /&gt;         * 增加&lt;br /&gt;          * Ondemand Feature&lt;br /&gt;          * Discussion Feature&lt;br /&gt;       * 自定义各种形式的report&lt;br /&gt;         * Running Task(正在做的任务)&lt;br /&gt;         * Under Testing(等待测试区)&lt;br /&gt;         * Urgent Delay(紧急Delay的任务)&lt;br /&gt;        * 自定义components&lt;br /&gt;         * 增加&lt;br /&gt;          * 命名: PM&lt;br /&gt;          * 其他必须的component&lt;br /&gt; * 需求管理&lt;br /&gt;   * 新需求形成需求ticket, Component=PM的为项目需求, Priority=Urgent/Middle Term/Long Term为讨论优先级&lt;br /&gt;   * 讨论通过需求ticket即刻被分解形成任务tickets&lt;br /&gt;   * 需求管理报告&lt;br /&gt;     * Discussion(等待讨论的需求)&lt;br /&gt; * Wiki&lt;br /&gt;   * 管理系统需求, api文档&lt;br /&gt;   * 项目的knowledge base&lt;br /&gt; * Blog&lt;br /&gt;   * 通知&lt;br /&gt;   * 新闻&lt;br /&gt;   * team成员原创的技术文章&lt;br /&gt; * Discussion&lt;br /&gt;   * 五花八门forum&lt;br /&gt;   * 八卦信息&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2618812721151793090?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2618812721151793090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2618812721151793090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2618812721151793090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2618812721151793090'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/09/trac.html' title='晒一下用trac打造的任务管理+需求管理平台'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2631878630749492438</id><published>2008-09-08T12:34:00.002+08:00</published><updated>2008-10-11T00:45:44.610+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='regexp'/><category scheme='http://www.blogger.com/atom/ns#' term='online'/><title type='text'>javascript 正则表达式在线测试 (javascript regexp online demo)</title><content type='html'>&lt;div dir="ltr"&gt;javascript regexp online demo     &lt;a href="http://www.regular-expressions.info/javascriptexample.html"&gt;http://www.regular-expressions.info/javascriptexample.html&lt;/a&gt;&lt;br /&gt;&lt;div&gt;    &lt;a href="http://www.regextester.com/"&gt;http://www.regextester.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;用js需要注意的问题:&lt;/div&gt;&lt;div&gt;    1. new RegExp的时候, 要手动转义, 例如: \w应该写成\\w&lt;/div&gt;&lt;div&gt;    2. 这种方式var reg=/\w/ig, 不用手动转义&lt;/div&gt;&lt;div&gt;        *  re = new &lt;span class="hilite2"&gt;RegExp&lt;/span&gt;("&lt;a href="file://w/"&gt;\\w&lt;/a&gt;+") 等价于 re = /\w+/&lt;/div&gt; &lt;div&gt;    3. test, match和search的区别:&lt;/div&gt;&lt;div&gt;        * test: &lt;/div&gt;           * regexp对象的方法: 快速的判断给定的str是否匹配pattern&lt;div&gt;        * search:&lt;/div&gt;&lt;div&gt;           * string对象的方法: 快速的判断给定的str是否匹配pattern, 只返回第一个匹配的位置&lt;/div&gt;&lt;div&gt;        * match:&lt;/div&gt; &lt;div&gt;           * string对象的方法: 识别str中所有的pattern, 较前者速度稍慢&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2631878630749492438?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2631878630749492438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2631878630749492438' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2631878630749492438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2631878630749492438'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/09/javascript-javascript-regexp-online.html' title='javascript 正则表达式在线测试 (javascript regexp online demo)'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3865479458136310344</id><published>2008-09-02T02:24:00.001+08:00</published><updated>2008-09-02T02:24:48.913+08:00</updated><title type='text'>感觉自己到了珍惜时间的年纪了</title><content type='html'>&lt;div dir="ltr"&gt;以后就要被这些事情所累:&lt;br&gt;&amp;nbsp;- 结婚&lt;br&gt;&amp;nbsp;- 生子&lt;br&gt;&amp;nbsp;- ...&lt;br&gt;&lt;br&gt;还有好多事情没有干好:&lt;br&gt;&amp;nbsp;- design pattern没看完&lt;br&gt;&amp;nbsp;- 买的新书没看完&lt;br&gt;&amp;nbsp;- python代码研究&lt;br&gt;&amp;nbsp;- django web dev&lt;br&gt;&amp;nbsp;- english&lt;br&gt;&amp;nbsp;- ...&lt;br&gt;&lt;br&gt;还有好多地方没有去:&lt;br&gt;&amp;nbsp;- 大理&lt;br&gt;&amp;nbsp;- us&lt;br&gt;&amp;nbsp;- 欧洲&lt;br&gt; &amp;nbsp;- ...&lt;br&gt;抓紧时间吧!&lt;br&gt; &lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3865479458136310344?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3865479458136310344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3865479458136310344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3865479458136310344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3865479458136310344'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/09/blog-post.html' title='感觉自己到了珍惜时间的年纪了'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7956411572830300130</id><published>2008-08-14T22:06:00.002+08:00</published><updated>2008-10-15T00:21:39.923+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><title type='text'>月满西楼</title><content type='html'>&lt;div dir="ltr"&gt;红藕香残玉簟秋&lt;br /&gt;轻解罗裳 独上兰舟&lt;br /&gt;云中谁寄锦书来&lt;br /&gt;雁字回时 月满西楼&lt;br /&gt;花自飘零水自流&lt;br /&gt;一种相思 两处闲愁&lt;br /&gt;此情无计可消除&lt;br /&gt;才下眉头 却上心头 &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7956411572830300130?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7956411572830300130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7956411572830300130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7956411572830300130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7956411572830300130'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/08/blog-post.html' title='月满西楼'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-1970948010375187075</id><published>2008-08-10T02:46:00.003+08:00</published><updated>2008-08-10T03:01:58.703+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='slides'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='memcached'/><title type='text'>slides from Mysql AB: memcached for mysql</title><content type='html'>&lt;div style="width: 425px; text-align: left;" id="__ss_506062"&gt;&lt;object style="margin: 0px;" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=mysqlmemcached7042008final-1215615355904526-8"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=mysqlmemcached7042008final-1215615355904526-8" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border: 0px none ; margin-bottom: -5px;" alt="SlideShare" /&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/frankmashraqi/memcached-for-mysql-advanced-use-cases" title="View this slideshow on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img style="visibility: hidden; width: 0px; height: 0px;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.11NXC/bT*xJmx*PTEyMTgzMDc3NzYwMzEmcHQ9MTIxODMwNzc3ODQzNyZwPTEwMTkxJmQ9Jm49Jmc9Mg==.gif" border="0" width="0" height="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-1970948010375187075?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/1970948010375187075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=1970948010375187075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1970948010375187075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1970948010375187075'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/08/slides-from-mysql-ab-memcached-for.html' title='slides from Mysql AB: memcached for mysql'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6963446115644356278</id><published>2008-08-08T23:08:00.002+08:00</published><updated>2008-08-10T03:05:08.550+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cruise'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='continuous integration'/><title type='text'>基于svn的cruise control config file</title><content type='html'>&lt;div dir="ltr"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;cruisecontrol&amp;gt;&lt;br /&gt;  &amp;lt;project name="test"&amp;gt;&lt;br /&gt;    &amp;lt;bootstrappers&amp;gt;&lt;br /&gt;        &amp;lt;!-- 根据本地svn目录check --&amp;gt;&lt;br /&gt;      &amp;lt;svnbootstrapper localWorkingCopy="projects/${&lt;a href="http://project.name/"&gt;project.name&lt;/a&gt;}" username='yourname' password='yourpassword'/&amp;gt;&lt;br /&gt;    &amp;lt;/bootstrappers&amp;gt;&lt;br /&gt;    &amp;lt;modificationset quietperiod="30"&amp;gt;&lt;br /&gt;        &amp;lt;!-- 根据本地svn目录查找修改的代码文件 --&amp;gt;&lt;br /&gt;      &amp;lt;svn localWorkingCopy="projects/${&lt;a href="http://project.name/"&gt;project.name&lt;/a&gt;}" username='yourname' password='yourpassword'/&amp;gt;&lt;br /&gt;    &amp;lt;/modificationset&amp;gt;&lt;br /&gt;    &amp;lt;schedule interval="300"&amp;gt;&lt;br /&gt;        &amp;lt;!-- 定时构建, 标准ant --&amp;gt;&lt;br /&gt;      &amp;lt;ant buildFile="projects/${&lt;a href="http://project.name/"&gt;project.name&lt;/a&gt;}/build.xml" antHome="apache-ant-1.7.0" target='all'/&amp;gt;&lt;br /&gt;    &amp;lt;/schedule&amp;gt;&lt;br /&gt;    &amp;lt;log&amp;gt;&lt;br /&gt;        &amp;lt;!-- 指定ant build log结果存放目录 --&amp;gt;&lt;br /&gt;      &amp;lt;merge dir="projects/${&lt;a href="http://project.name/"&gt;project.name&lt;/a&gt;}/target/test-results" /&amp;gt;&lt;br /&gt;    &amp;lt;/log&amp;gt;&lt;br /&gt;    &amp;lt;publishers&amp;gt;&lt;br /&gt;      &amp;lt;onsuccess&amp;gt;&lt;br /&gt;        &amp;lt;!-- 构建成功之后, 将bin移动到指定目录 --&amp;gt;&lt;br /&gt;        &amp;lt;artifactspublisher dest="artifacts/${&lt;a href="http://project.name/"&gt;project.name&lt;/a&gt;}" file="projects/${&lt;a href="http://project.name/"&gt;project.name&lt;/a&gt;}/target/${&lt;a href="http://project.name/"&gt;project.name&lt;/a&gt;}.jar" /&amp;gt;&lt;br /&gt;      &amp;lt;/onsuccess&amp;gt;&lt;br /&gt;       &lt;br /&gt;        &amp;lt;!-- htmlemail --&amp;gt;&lt;br /&gt;        &amp;lt;!-- email --&amp;gt;&lt;br /&gt;    &amp;lt;/publishers&amp;gt;&lt;br /&gt;    &amp;lt;listeners /&amp;gt;&lt;br /&gt;  &amp;lt;/project&amp;gt;&lt;br /&gt;&amp;lt;/cruisecontrol&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6963446115644356278?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6963446115644356278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6963446115644356278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6963446115644356278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6963446115644356278'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/08/svncruise-control-config-file.html' title='基于svn的cruise control config file'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5409733748445456375</id><published>2008-08-07T11:56:00.002+08:00</published><updated>2008-08-10T03:06:01.870+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tomcat log'/><category scheme='http://www.blogger.com/atom/ns#' term='access log'/><title type='text'>tomcat下单独设置某个app的access log</title><content type='html'>&lt;div dir="ltr"&gt;在project的META-INF目录下添加context.xml文件, 内容:&lt;br /&gt;&lt;span style="background-color: rgb(204, 204, 255);"&gt;&amp;lt;Context&amp;gt;&lt;/span&gt; &lt;span style="background-color: rgb(204, 204, 255);"&gt;    &amp;lt;WatchedResource&amp;gt;WEB-INF/web.xml&amp;lt;/WatchedResource&amp;gt;&lt;/span&gt;  &lt;span style="background-color: rgb(204, 204, 255);"&gt;    &amp;lt;Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  &lt;/span&gt; &lt;span style="background-color: rgb(204, 204, 255);"&gt;    prefix="appname_localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false" buffered="false"/&amp;gt;&lt;/span&gt;  &lt;span style="background-color: rgb(204, 204, 255);"&gt;&amp;lt;/Context&amp;gt;&lt;br /&gt;&lt;/span&gt;这样就能够单独设置某个app的access log了&lt;br /&gt;&lt;span style="background-color: rgb(204, 204, 255);"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;br /&gt;如果把&lt;/span&gt;这一段放到server.xml中, 那么就是记录所有app的access log:&lt;br /&gt;&lt;span style="background-color: rgb(204, 204, 255);"&gt; &amp;lt;Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  &lt;/span&gt;  &lt;span style="background-color: rgb(204, 204, 255);"&gt;    prefix="appname_localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false" buffered="false"/&amp;gt;&lt;br /&gt;&lt;br /&gt;更详细的说明见文档&lt;br /&gt;&lt;a href="http://localhost:8080/docs/config/valve.html"&gt;http://localhost:8080/docs/config/valve.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5409733748445456375?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5409733748445456375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5409733748445456375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5409733748445456375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5409733748445456375'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/08/tomcatappaccess-log.html' title='tomcat下单独设置某个app的access log'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2932361764314478599</id><published>2008-08-06T00:07:00.003+08:00</published><updated>2008-08-06T00:21:08.042+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='foreignkey'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='orm'/><title type='text'>Django ORM 中ForeignKey生成sql的方式</title><content type='html'>&lt;div dir="ltr"&gt;django根据model的name按照字母序升序排序， 然后依次生成sql， 例如有model A, B, C， 此时A外键引用B， C外键引用B， 则生成的sql即为：&lt;br /&gt;      create table app_a(...)&lt;br /&gt;      create table app_b(...)&lt;br /&gt;      create table app_c(...reference app_b(...))&lt;br /&gt;      alter table app_a add foreign key fkey_name reference app_b(...))&lt;br /&gt;    &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2932361764314478599?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2932361764314478599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2932361764314478599' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2932361764314478599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2932361764314478599'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/08/django-orm-foreignkeysql.html' title='Django ORM 中ForeignKey生成sql的方式'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5592015792528678753</id><published>2008-07-30T15:01:00.006+08:00</published><updated>2008-10-15T00:21:54.306+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='svnsync'/><title type='text'>备份, 同步svn版本库</title><content type='html'>&lt;div dir="ltr"&gt;&lt;p&gt;初始化本地一个空的svn库： svnadmin create /home/lg/repo&lt;br /&gt;&lt;/p&gt;&lt;p&gt;从远程库初始化0版本: svnsync init file:///home/lg/repo remote_svn_repo&lt;br /&gt;&lt;/p&gt;&lt;p&gt;从远程库同步: svnsync sync file:///home/lg/repo&lt;br /&gt;&lt;/p&gt;&lt;p&gt;顺便看看svn的命令, 别整天被UI给宠坏了, 命令行也是很好用的, ^_^&lt;/p&gt;注意：&lt;br /&gt;初始化过程中会有提示你要创建hook, 到/home/lg/repo下的hooks下创建相应的空文件改名为.sh(.bat)加入可执行权限即可&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5592015792528678753?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5592015792528678753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5592015792528678753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5592015792528678753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5592015792528678753'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/svn.html' title='备份, 同步svn版本库'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-2283044161707312795</id><published>2008-07-30T10:09:00.003+08:00</published><updated>2008-08-06T00:25:04.603+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><category scheme='http://www.blogger.com/atom/ns#' term='connection pool'/><title type='text'>解决连接池获取连接后不能用的问题</title><content type='html'>&lt;div dir="ltr"&gt;连接池8小时断掉的问题确实很烦, 有些连接池的连接自动测试又不管用, 在网上无数的人问这个问题, 说是connection pool的bug云云, 在我看来, 这个应该不是什么问题, 出现这个问题的根源是数据库, 故而直接设置了一下mysql的连接超时时间(当然数据库的连接数是要考虑的),&lt;br /&gt;在mysqld section中加入:&lt;br /&gt;#mysql 自动断掉链接的时间设为十年&lt;br /&gt;wait_timeout=315360000&lt;br /&gt;interactive_timeout=315360000&lt;br /&gt;&lt;br /&gt;想必也世界上也没有几台服务器10年不当机, 呵呵&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-2283044161707312795?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/2283044161707312795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=2283044161707312795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2283044161707312795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/2283044161707312795'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/blog-post_30.html' title='解决连接池获取连接后不能用的问题'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5969046249374694917</id><published>2008-07-30T09:27:00.000+08:00</published><updated>2008-07-30T09:28:00.305+08:00</updated><title type='text'>简单的文本搜索, 用ie和firefox默认的功能实现, 代码:</title><content type='html'>&lt;div dir="ltr"&gt;&lt;br clear="all"&gt;var range=&amp;quot;&amp;quot;;&lt;br&gt;if(document.createRange){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; range = document.createRange();&lt;br&gt;}else{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; range = document.body.createTextRange(); &lt;br&gt;}&lt;br&gt;if(range.findText){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(range.findText(&amp;quot;和尚&amp;quot;)){&lt;br&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; range.pasteHTML(range.text.fontcolor(&amp;quot;#ff0000&amp;quot;));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; range.collapse(true);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}else{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var s,n;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; s = window.getSelection();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(window.find(&amp;quot;和尚&amp;quot;)){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var n = document.createElement(&amp;quot;SPAN&amp;quot;);&lt;br&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; n.style.color=&amp;quot;#ff0000&amp;quot; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; s.getRangeAt(0).surroundContents(n);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt; &lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5969046249374694917?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5969046249374694917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5969046249374694917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5969046249374694917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5969046249374694917'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/iefirefox.html' title='简单的文本搜索, 用ie和firefox默认的功能实现, 代码:'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6537198119490811688</id><published>2008-07-29T00:54:00.003+08:00</published><updated>2008-07-29T21:54:45.736+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='exit'/><title type='text'>app退出时的回调,　java有AddShutdownHook,　python也有atexit</title><content type='html'>&lt;div dir="ltr"&gt;&lt;span style="background-color: rgb(102, 102, 204);"&gt;def goodbye( name, adjective ):&lt;/span&gt;&lt;span style="background-color: rgb(102, 102, 204);"&gt;&lt;br /&gt;  print "goodbye %s %s"%( name, adjective )&lt;/span&gt;&lt;span style="background-color: rgb(102, 102, 204);"&gt;&lt;br /&gt;def bye(info):&lt;/span&gt; &lt;span style="background-color: rgb(102, 102, 204);"&gt;   &lt;br /&gt;  print "printed on exiting", info&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: rgb(102, 102, 204);"&gt;import atexit&lt;/span&gt;&lt;span style="background-color: rgb(102, 102, 204);"&gt;&lt;br /&gt;atexit.register( goodbye, adjective="cat", name="dog")&lt;/span&gt;&lt;span style="background-color: rgb(102, 102, 204);"&gt;&lt;br /&gt;atexit.register( bye , info="cat")&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: rgb(102, 102, 204);"&gt;atexit.register( bye , info="dog")&lt;/span&gt;&lt;br /&gt;不过python的回调顺序是添加顺序的&lt;span style="background-color: rgb(255, 0, 0);"&gt;逆序&lt;/span&gt;!&lt;br /&gt;这里的结果为:&lt;br /&gt;&lt;span style="background-color: rgb(102, 102, 102);"&gt;printed on exiting dog&lt;/span&gt;  &lt;span style="background-color: rgb(102, 102, 102);"&gt;&lt;br /&gt;printed on exiting cat&lt;/span&gt; &lt;span style="background-color: rgb(102, 102, 102);"&gt;&lt;br /&gt;goodbye dog cat&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6537198119490811688?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6537198119490811688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6537198119490811688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6537198119490811688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6537198119490811688'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/appjavaaddshutdownhookpythonatexit.html' title='app退出时的回调,　java有AddShutdownHook,　python也有atexit'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5648161641080173608</id><published>2008-07-29T00:45:00.003+08:00</published><updated>2008-07-29T01:03:24.659+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='urlloader'/><title type='text'>利用python,　构建自己的URLModuleLoader</title><content type='html'>&lt;div dir="ltr"&gt;利用python,　构建自己的URLModuleLoader.&lt;br /&gt;需求:&lt;br /&gt;     为了便于客户端的代码更新,　故将module放到了服务器上,　客户端只需要一个简单的run.py,　剩下的问题用URLModuleLoader来搞定!&lt;br /&gt;资源:　&lt;a href="http://localhost:8080/modules"&gt;http://localhost:8080/modules&lt;/a&gt;下放置了很多python modules,　举例来说logger.py, etc...&lt;br /&gt;&lt;br /&gt;from ihooks import ModuleLoader, ModuleImporter&lt;br /&gt;from urllib2 import urlopen, HTTPError&lt;br /&gt;from urlparse import urljoin&lt;br /&gt;import tempfile&lt;br /&gt;import os&lt;br /&gt;&lt;br /&gt;url_path=['&lt;a href="http://localhost:8080/modules"&gt;http://localhost:8080/modules&lt;/a&gt;']&lt;br /&gt;&lt;br /&gt;"""URL loader 的实现"""&lt;br /&gt;class URLModuleLoader(ModuleLoader):&lt;br /&gt;   def find_module(self, name, path=None):&lt;br /&gt;       stub=ModuleLoader.find_module(self, name, path)&lt;br /&gt;       if stub:&lt;br /&gt;           #print "module :", name, stub&lt;br /&gt;           return stub&lt;br /&gt;       if path:&lt;br /&gt;           return&lt;br /&gt;   　"""本地module优先,　如果本地没有,　则到服务器上去取"""&lt;br /&gt;       for base in url_path:&lt;br /&gt;           url=urljoin(base, name+'.py')&lt;br /&gt;           try:&lt;br /&gt;               file = urlopen(url)&lt;br /&gt;               name=tempfile.mktemp()&lt;br /&gt;               stream=open(name, 'wb')&lt;br /&gt;               stream.write(file.read())&lt;br /&gt;               stream.close()&lt;br /&gt;               file.close()&lt;br /&gt; &lt;br /&gt;               file=open(name, 'r')&lt;br /&gt;               #print "module :", url&lt;br /&gt;               return file, url, ('.py', 'r', 1)&lt;br /&gt;           except HTTPError, e:&lt;br /&gt;               #print e&lt;br /&gt;               return None&lt;br /&gt;&lt;br /&gt;"""实现importer"""&lt;br /&gt;class URLImporter(ModuleImporter):&lt;br /&gt;   def __init__(self):&lt;br /&gt;       hooks, verbose=(None, 1)&lt;br /&gt;       loader=URLModuleLoader(hooks, verbose)&lt;br /&gt;       ModuleImporter.__init__(self, loader, verbose)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"""设置自己的module　loader"""&lt;br /&gt;URLImporter().install()&lt;br /&gt;&lt;br /&gt;"""测试"""&lt;br /&gt;if　__name__=="__main__":&lt;br /&gt;   import logger&lt;br /&gt;   import re&lt;br /&gt;   import base64&lt;br /&gt;   logger.log("logger loaded from remote packages")&lt;br /&gt;   logger.log("logger infomation demo")&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5648161641080173608?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5648161641080173608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5648161641080173608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5648161641080173608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5648161641080173608'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/pythonurlmoduleloader.html' title='利用python,　构建自己的URLModuleLoader'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-9187280651773100273</id><published>2008-07-29T00:26:00.002+08:00</published><updated>2008-07-29T00:59:24.545+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>urls中pattern可以简写</title><content type='html'>&lt;div dir="ltr"&gt;from django.conf.urls.defaults import *&lt;br /&gt;&lt;br /&gt;urlpatterns = patterns('',&lt;br /&gt;    (r'^$', "main.views.index"),   &lt;br /&gt;    (r'^contact-us/$', "main.views.contact_us"),&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;可以简写为:&lt;br /&gt;from django.conf.urls.defaults import *&lt;br /&gt;&lt;br /&gt;urlpatterns = patterns('main.views',&lt;br /&gt;    (r'^$', "index"),   &lt;br /&gt;    (r'^contact-us/$', "contact_us"),&lt;br /&gt;)&lt;br /&gt;pattern的第一个参数是一个前缀&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-9187280651773100273?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/9187280651773100273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=9187280651773100273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/9187280651773100273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/9187280651773100273'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/urlspattern.html' title='urls中pattern可以简写'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7707813937420937248</id><published>2008-07-27T00:39:00.004+08:00</published><updated>2008-10-15T00:21:26.477+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='xlty'/><category scheme='http://www.blogger.com/atom/ns#' term='jiffy'/><category scheme='http://www.blogger.com/atom/ns#' term='小楼听雨'/><category scheme='http://www.blogger.com/atom/ns#' term='timing'/><category scheme='http://www.blogger.com/atom/ns#' term='firebug'/><title type='text'>Jiffy Firebug Plugin: Fine grained calculation of performance timings</title><content type='html'>&lt;div dir="ltr"&gt;&lt;h2 class="entry-title"&gt;&lt;a class="entry-title-link" target="_blank" href="http://feeds.feedburner.com/%7Er/ajaxian/%7E3/318133947/jiffy-firebug-plugin-fine-grained-calculation-of-performance-timings"&gt;Jiffy Firebug Plugin: Fine grained calculation of performance timings&lt;/a&gt;&lt;/h2&gt; jiffy home:&lt;br /&gt;&lt;a href="http://code.google.com/p/jiffy-web/"&gt;http://code.google.com/p/jiffy-web/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7707813937420937248?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7707813937420937248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7707813937420937248' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7707813937420937248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7707813937420937248'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/jiffy-firebug-plugin-fine-grained.html' title='Jiffy Firebug Plugin: Fine grained calculation of performance timings'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3479230277165161314</id><published>2008-07-22T00:27:00.001+08:00</published><updated>2008-07-22T00:27:32.595+08:00</updated><title type='text'>Rasphone - Dial up Networking (RAS) - 已使用 Google 工具栏发送</title><content type='html'>&lt;div dir="ltr"&gt;&lt;a href="http://www.ss64.com/nt/rasphone.html" target="_blank"&gt;&lt;b&gt;Rasphone - Dial up Networking (RAS)&lt;/b&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div style="background-color: rgb(204, 204, 204);"&gt;&lt;table style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: 100%; direction: ltr; background-color: transparent;" border="0" cellspacing="0" width="100%"&gt;  &lt;tbody style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt; &lt;tr style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt; &lt;td style="padding: 1px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" nowrap&gt; &lt;div style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" align="left"&gt; &lt;a name="110048d9f44e166f_top" style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;"&gt; &lt;/a&gt;&lt;a href="http://www.ss64.com/index.html" style="padding: 0px; color: rgb(0, 0, 255); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" target="_blank"&gt; &lt;img title="Home" alt="Home" src="http://www.ss64.com/images/home-l.gif" style="padding: 0px; color: rgb(0, 0, 255); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" border="0" width="89" height="26"&gt; &lt;/a&gt; &lt;a href="http://www.ss64.com/nt" style="padding: 0px; color: rgb(0, 0, 255); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" target="_blank"&gt; &lt;img title="XP" alt="XP Commands" src="http://www.ss64.com/images/nt_l.gif" style="padding: 0px; color: rgb(0, 0, 255); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" border="0" width="89" height="26"&gt; &lt;/a&gt; &lt;/div&gt;&lt;/td&gt;&lt;td style="padding: 1px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" nowrap&gt;  &lt;div style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" align="right"&gt; &lt;a href="http://www.ss64.com/ntsyntax/index.html" style="padding: 0px; color: rgb(0, 0, 255); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" target="_blank"&gt; &lt;img title="XP" alt="XP Syntax" src="http://www.ss64.com/images/syntax-r.gif" style="padding: 0px; color: rgb(0, 0, 255); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" border="0" width="89" height="26"&gt; &lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="padding: 1px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" width="20%" nowrap&gt;  &lt;form action="http://www.google.com/search" method="get" style="margin: 0px; padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" target="_blank" onsubmit="return window.confirm(&amp;quot;您确实要将信息提交到外部网页？&amp;quot;);"&gt;  &lt;div style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: transparent;" align="right"&gt; &lt;input size="10" name="q" style="padding: 1px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: rgb(255, 255, 255);"&gt;  &lt;input value="»" style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: verdana,geneva,helvetica,Sans-Serif; font-size: small; direction: ltr; background-color: rgb(236, 233, 216);" type="submit"&gt;   &lt;/div&gt;&lt;/form&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: large; direction: ltr; background-color: transparent;"&gt;  RASPHONE (Dial Up Networking)&lt;/p&gt;&lt;p style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt;  Manage Remote Access Service (RAS) connections.&lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt;  This is a part of the Dial-Up Networking service, typically used to connect a PC to an Internet Service Provider.&lt;/p&gt;&lt;pre style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-size: 100%; direction: ltr; background-color: transparent;"&gt; Dial a RAS connection:&lt;br&gt;   RASPHONE [-v] -f &lt;i style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: italic; font-size: 100%; direction: ltr; background-color: transparent;"&gt;&lt;br&gt;PhoneBook_file&lt;/i&gt; -d &amp;quot;&lt;i style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: italic; font-size: 100%; direction: ltr; background-color: transparent;"&gt;&lt;br&gt; PhoneBook_entry&lt;/i&gt;&amp;quot; &lt;br&gt;&lt;br&gt;Hang up a RAS connection:&lt;br&gt;   RASPHONE [-v] -f &lt;i style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: italic; font-size: 100%; direction: ltr; background-color: transparent;"&gt;&lt;br&gt; PhoneBook_file&lt;/i&gt; -h &amp;quot;&lt;i style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: italic; font-size: 100%; direction: ltr; background-color: transparent;"&gt;&lt;br&gt;PhoneBook_entry&lt;/i&gt;&amp;quot; &lt;br&gt;&lt;br&gt;Display RAS Status dialogue box&lt;br&gt;    RASPHONE -S&lt;br&gt;&lt;br&gt;Other RAS options:&lt;br&gt;   RASPHONE [-v] -f &lt;i style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: italic; font-size: 100%; direction: ltr; background-color: transparent;"&gt;&lt;br&gt;PhoneBook_file&lt;/i&gt; &lt;i style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: italic; font-size: 100%; direction: ltr; background-color: transparent;"&gt;&lt;br&gt; options&lt;/i&gt; &amp;quot;&lt;i style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: italic; font-size: 100%; direction: ltr; background-color: transparent;"&gt;&lt;br&gt;PhoneBook_entry&lt;/i&gt;&amp;quot;&lt;br&gt;&lt;br&gt;OPTIONS&lt;br&gt;   -a   : Add new PhoneBook entry&lt;br&gt;    -e   : Edit an existing PhoneBook entry&lt;br&gt;   -c   : Clone an existing PhoneBook entry&lt;br&gt;   -r   : Delete/remove an existing PhoneBook entry&lt;br&gt;   -v   : Disable - &amp;#39;grey out&amp;#39; the option to rename the PhoneBook_entry&lt;br&gt; &lt;/pre&gt;&lt;p style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt; To use this command requires that Dial Up Networking Service be installed (via Control Panel - Networking)&lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt;  &lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt; The default location for PhoneBook entries is %SystemRoot%\System32\ras\&lt;/p&gt;&lt;p style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt;  &lt;i style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: italic; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt; &amp;quot;Someone invented the telephone, And interrupted a nation&amp;#39;s slumber, Ringing wrong but similar numbers&amp;quot; - Ogden Nash&lt;/i&gt;&lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt;  &lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt; &lt;b style="padding: 0px; color: rgb(0, 0, 0); font-weight: 700; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt; Related Commands:&lt;/b&gt;&lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt;  &lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt; &lt;a href="http://www.ss64.com/nt/rasdial.html" style="padding: 0px; color: rgb(0, 0, 255); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;" target="_blank"&gt; RASDIAL&lt;/a&gt; - Manage RAS connections&lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt;  Connection Manager Administration Kit - VPN connections (&lt;a href="http://www.ss64.com/links/ntlinks.html#kits" style="padding: 0px; color: rgb(0, 0, 255); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;" target="_blank"&gt; 2003 Resource Kit&lt;/a&gt;)&lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt;  RASMON - Windows 2000 GUI Resource Kit tool&lt;br style="padding: 0px; color: rgb(0, 0, 0); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;"&gt;  CHECKRAS - &lt;a href="http://www.microsoft.com/smserver/downloads/20/tools/spsupport/default.asp" style="padding: 0px; color: rgb(0, 0, 255); font-weight: 400; font-style: normal; font-family: Helvetica,Arial,Verdana,geneva,sans-serif; font-size: 100%; direction: ltr; background-color: transparent;" target="_blank"&gt; SMS support tools&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;  &lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3479230277165161314?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3479230277165161314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3479230277165161314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3479230277165161314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3479230277165161314'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/rasphone-dial-up-networking-ras-google.html' title='Rasphone - Dial up Networking (RAS) - 已使用 Google 工具栏发送'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4621750071391538498</id><published>2008-07-22T00:16:00.002+08:00</published><updated>2008-07-29T01:00:56.858+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sanlitun'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>apple store opened at 7.19</title><content type='html'>&lt;div dir="ltr"&gt;     7.19正好同学来北京玩, 没空去参加apple的开业大典, 听apple店员说盛况空前啊, 7000多人, 鲁豫等人也去了,&lt;br /&gt;总算是在apple开业第二天, 也就是周日得来空闲, 草草洗刷完毕, 吃完早饭, 就直奔三里屯village, 117路4站就到, 下车之后首先看到三里屯 village的主楼, 很酷的样子, 然后是adidas的大型卖场, 不知不觉往前边走, 抬眼一看, 竟然到了apple的后门! 竟然这样到了apple, 本来还打算好好找一通呢.&lt;br /&gt;     还好, 来的早, 人不是太多, 看了一通ipod, 试用了一下ipod touch之后, 就直奔主角而去 - macbook pro, 赞美之词就省了吧, 总想夸夸mb, 算了, 我也别说了, 怕一说就停不下来, 呵呵, 不知不觉就到了15点, 我也该回家了, 有空再来体验一下genius bar, 预约一个apple genius陪我聊聊pro..., 该睡觉了,&lt;br /&gt;     最后, 看看我用烂技术拍的艺术品: &lt;a href="http://picasaweb.google.com/xlty.0512/Apple720"&gt;http://picasaweb.google.com/xlty.0512/Apple720&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4621750071391538498?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4621750071391538498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4621750071391538498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4621750071391538498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4621750071391538498'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/apple-store-opened-at-719.html' title='apple store opened at 7.19'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5087227600259156093</id><published>2008-07-22T00:00:00.001+08:00</published><updated>2008-07-22T00:00:30.001+08:00</updated><title type='text'>北京烤鸭, 哈好吃</title><content type='html'>&lt;div dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这次的烤鸭个够大, 三个人愣是没吃完, 多亏鸭架汤上的太慢, 我们及时给要了回来, 打包回家, 烤鸭子总是那么的好吃啊. 慢慢感觉到生活的意义了, 呵呵.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 有点怀念全聚德的鸭皮沾白糖了, 好吃!&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; picasa地址, 看看我拍的烤鸭和美味:&amp;nbsp; &lt;a href="http://picasaweb.google.com/xlty.0512/dtzfDL"&gt;http://picasaweb.google.com/xlty.0512/dtzfDL&lt;/a&gt;&lt;br&gt; &lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5087227600259156093?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5087227600259156093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5087227600259156093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5087227600259156093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5087227600259156093'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/blog-post_22.html' title='北京烤鸭, 哈好吃'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-1400061004289864530</id><published>2008-07-20T01:40:00.003+08:00</published><updated>2008-08-10T03:06:50.699+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='number format'/><title type='text'>研究了一通数字的格式化方法, 原来有个Number(num).toLocaleString()</title><content type='html'>&lt;div dir="ltr"&gt;Number(34443243244).toLocaleString() -&amp;gt; &lt;span class="objectBox objectBox-string"&gt;"34,443,243,244"&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-1400061004289864530?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/1400061004289864530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=1400061004289864530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1400061004289864530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1400061004289864530'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/numbernumtolocalestring.html' title='研究了一通数字的格式化方法, 原来有个Number(num).toLocaleString()'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6693674699663581377</id><published>2008-07-20T01:36:00.002+08:00</published><updated>2008-07-29T01:01:50.908+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='offset'/><title type='text'>获取dom元素的绝对位置</title><content type='html'>&lt;div dir="ltr"&gt;function getPosition(ele){&lt;br /&gt;    var nTop = ele.offsetTop;&lt;br /&gt;    var nLeft = ele.offsetLeft;&lt;br /&gt;    while((ele = ele.offsetParent)!=null)&lt;br /&gt;    {&lt;br /&gt;        nTop += ele.offsetTop;&lt;br /&gt;        nLeft += ele.offsetLeft;&lt;br /&gt;    }&lt;br /&gt;    return {top:nTop,left:nLeft}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;从dom书中获取某个元素的绝对位置, 跨浏览器IE, Firefox&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6693674699663581377?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6693674699663581377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6693674699663581377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6693674699663581377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6693674699663581377'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/dom.html' title='获取dom元素的绝对位置'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4079943179779678475</id><published>2008-07-15T11:11:00.002+08:00</published><updated>2008-07-29T01:02:37.812+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='hot area'/><title type='text'>用js动态实现图片热区</title><content type='html'>代码如下:&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;button onclick="init();"&amp;gt;init&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;lt;img src='20080319_96325f230767e6ac385beuTiIglWzzkf.png' border=0 usemap='#Map'&amp;gt;&lt;br /&gt;&amp;lt;map name="Map" id="MAP"&amp;gt;&amp;lt;/map&amp;gt;&lt;br /&gt;&amp;lt;div id="maskDIV"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;script language="JavaScript"&amp;gt;&lt;br /&gt;    var maskDiv;&lt;br /&gt;    function mask(param){&lt;br /&gt;        if (!maskDiv)&lt;br /&gt;        {&lt;br /&gt;            maskDiv = document.getElementById('maskDIV');&lt;br /&gt;            maskDiv.style.position='absolute';&lt;br /&gt;            maskDiv.style.backgroundColor="red";&lt;br /&gt;            //document.appendChild(maskDiv);&lt;br /&gt;        }&lt;br /&gt;        maskDiv.innerHTML=param.title;&lt;br /&gt;        maskDiv.style.left=param.left+"px";&lt;br /&gt;        maskDiv.style.top=param.top+"px";&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function init(){&lt;br /&gt;        var oAREA = document.createElement('AREA');&lt;br /&gt;        oAREA.shape = 'rect';&lt;br /&gt;        oAREA.coords = '0,0,225,299';&lt;br /&gt;        oAREA.href = 'showcity.aspx?cityid=10600';&lt;br /&gt;        oAREA.alt = '北京市西城区';&lt;br /&gt;        oAREA.title = '北京市西城区';&lt;br /&gt;        oAREA.onmouseover=function(e){&lt;br /&gt;            mask({left:e.clientX,top:e.clientY,title: oAREA.title});&lt;br /&gt;        }&lt;br /&gt;        document.getElementById("MAP").appendChild(oAREA);&lt;br /&gt;    }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;好了, 技术问题搞定, 剩下的就是你的发挥了!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4079943179779678475?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4079943179779678475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4079943179779678475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4079943179779678475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4079943179779678475'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/js.html' title='用js动态实现图片热区'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3917410327913291538</id><published>2008-07-13T23:25:00.002+08:00</published><updated>2008-08-10T03:07:17.496+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='filter'/><title type='text'>重写django的FilterSpec来实现filter tag的数据自定义</title><content type='html'>重写django的FilterSpec来实现filter tag的数据自定义, 注意FilterSpec的register始终将新加的test function和factory的tuple放到registered list的最后, 但是当FilterSpec查找model匹配的FilterSpec的时候是顺序遍历的, 所以当在FilterSpec中只要有一个test function返回True, 那么model就用这个, 就是说model一直用第一个匹配的FilterSpec, 所以就有了下边的insert_first_filter_spec.&lt;br /&gt;&lt;br /&gt;from django.contrib.admin.filterspecs import FilterSpec&lt;br /&gt;&lt;br /&gt;def insert_first_filter_spec(test,factory):&lt;br /&gt;    FilterSpec.filter_specs.insert(0,(test,factory))&lt;br /&gt;&lt;br /&gt;class AdvancedChoicesFilterSpec(FilterSpec):&lt;br /&gt;    def __init__(self, f, request, params, model):&lt;br /&gt;        super(AdvancedChoicesFilterSpec, self).__init__(f, request, params, model)&lt;br /&gt;        self.lookup_kwarg = '%s__exact' % &lt;a href="http://f.name/"&gt;f.name&lt;/a&gt;&lt;br /&gt;       &lt;br /&gt;        make models's field default value to default filter&lt;br /&gt;        self.lookup_val = request.GET.get(self.lookup_kwarg, None) or self.field.default&lt;br /&gt;&lt;br /&gt;    def choices(self, cl):&lt;br /&gt;        yield {'selected': self.lookup_val is None,&lt;br /&gt;               'query_string': cl.get_query_string({}, [self.lookup_kwarg]),&lt;br /&gt;               'display': _('All')}&lt;br /&gt;        for k, v in self.field.choices:&lt;br /&gt;            yield {'selected': str(k) == self.lookup_val,&lt;br /&gt;                    'query_string': cl.get_query_string({self.lookup_kwarg: k}),&lt;br /&gt;                    'display': v}&lt;br /&gt;&lt;br /&gt; replace choices tag factory&lt;br /&gt;insert_first_filter_spec(lambda f: bool(f.choices), AdvancedChoicesFilterSpec)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3917410327913291538?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3917410327913291538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3917410327913291538' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3917410327913291538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3917410327913291538'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/djangofilterspecfilter-tag.html' title='重写django的FilterSpec来实现filter tag的数据自定义'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4467728754768860587</id><published>2008-07-13T23:19:00.001+08:00</published><updated>2008-07-13T23:19:04.394+08:00</updated><title type='text'>吓了一跳</title><content type='html'>看了自己的博客更是吓了一跳, 完全没有主观思想, 就是技术和记录!&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4467728754768860587?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4467728754768860587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4467728754768860587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4467728754768860587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4467728754768860587'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/blog-post_13.html' title='吓了一跳'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5328631950105422882</id><published>2008-07-13T23:09:00.002+08:00</published><updated>2008-07-29T01:03:07.072+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>这只是一份工作而已, 不是么?</title><content type='html'>每天对着电脑, 我的生活早己离不开它, 思维也慢慢的变的computer, 每天一成不变的check and read -- email, feed, blog, 期望看到, 发现一些感兴趣的事务, 文章, 思想, 但是看到, 发现了之后呢, 就又变得像机器一样learn it, 慢慢补充自己的知识储备, 而生活也慢慢变的一成不变, 像机器一般的生活, 简直是一个"机器人"了.&lt;br /&gt;      直到长假后回公司的第一天, 这么久没有看到满屏显示的code, 异常兴奋, 下意识的去拿鼠标, 然手下一阵失落传来, 紧跟着就是大脑的一阵惊慌, where is my mouse? why i am so afraid? 那一刻忽然想起人们经常谈论的话题: 没有电脑我们该怎么办?&lt;br /&gt;      ""没有硝烟中的scrum和xp"" 作者提到一句话:&lt;br /&gt;                哦, 最后请不要忘记......&lt;br /&gt;                这只是一份工作而已, 不是么?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5328631950105422882?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5328631950105422882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5328631950105422882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5328631950105422882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5328631950105422882'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/blog-post.html' title='这只是一份工作而已, 不是么?'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-1782682616574421435</id><published>2008-07-11T23:19:00.001+08:00</published><updated>2008-07-12T00:15:25.276+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='swf'/><category scheme='http://www.blogger.com/atom/ns#' term='player'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>兼容各浏览器的Flash播放器封装: swfobject.js</title><content type='html'>这里下载最新版的SWFObject:&lt;a href="http://blog.deconcept.com/swfobject/swfobject_source.js" target="_blank"&gt;http://blog.deconcept.com/swfobject/swfobject_source.js&lt;/a&gt;。&lt;a name="entrymore"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;用它的好处主要有:&lt;br /&gt;&lt;div class="quote"&gt; &lt;div class="quote-content"&gt;  &lt;a href="http://1.ie/"&gt;1.IE&lt;/a&gt;中没有讨厌的虚框问题了。&lt;br /&gt; 2.提供了完善的版本检测功能，如果版本不够则显示其他东西，比如图片或文字。&lt;br /&gt; 3.易于使用，只要在页面头加载一个 .js 文件，然后 HTML 写一个容器，里面放普通的文本或图片（用于无法显示 Flash 时显示），最后  用脚本来替换这个元素里面的内容为 Flash。&lt;br /&gt; 4.可以通过验证——当然这个不是重点，只是顺带效果罢了。&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;只需要包含 swfobject.js这个js文件，然后在DOM中插入一些简单的JS代码，就能嵌入Flash媒体资源了。 下面是一个最简单的范例：&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="swfobject.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="flashcontent"&amp;gt;&lt;br /&gt; This text is replaced by the Flash movie.&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt; var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");&lt;br /&gt;  so.write("flashcontent");&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-1782682616574421435?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/1782682616574421435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=1782682616574421435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1782682616574421435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1782682616574421435'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/flash-swfobjectjs.html' title='兼容各浏览器的Flash播放器封装: swfobject.js'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3033861771345375742</id><published>2008-07-11T00:09:00.001+08:00</published><updated>2008-07-12T00:15:55.903+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='filter'/><title type='text'>"ago filter" / date tag filter - django snippet</title><content type='html'>from django import template&lt;br /&gt;from StringIO import StringIO&lt;br /&gt;&lt;br /&gt;register = template.Library()&lt;br /&gt;&lt;br /&gt;@register.filter_function&lt;br /&gt;def date_tag(path, tags):&lt;br /&gt;    """&lt;br /&gt;        {{ "/recent/"|date_tag:"0,1,2,3" }}&lt;br /&gt;    """&lt;br /&gt;    html = StringIO()&lt;br /&gt;    if path:&lt;br /&gt;        path = path.strip()&lt;br /&gt;    else:&lt;br /&gt;        path=""&lt;br /&gt;    tags = [x.strip() for x in tags.split(',')]&lt;br /&gt;    for tag in tags:&lt;br /&gt;        if tag == "0":&lt;br /&gt;            html.write('&amp;lt;a href="%s%s/"&amp;gt;%s&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;' % (path,tag,"today"))&lt;br /&gt;        elif tag == "1":&lt;br /&gt;            html.write('&amp;lt;a href="%s%s/"&amp;gt;%s&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;' % (path,tag,"yesterday"))&lt;br /&gt;        else:&lt;br /&gt;            html.write('&amp;lt;a href="%s%s/"&amp;gt;%s&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;' % (path,tag,tag+" days ago"))&lt;br /&gt;    return html.getvalue()&lt;br /&gt;&lt;br /&gt;===================================&lt;br /&gt;usage:&lt;br /&gt;1. put this code to app/templatetags directory, named tags.py&lt;br /&gt;2. load tags into template: {% load  tags %}&lt;br /&gt;3. use filter&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3033861771345375742?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3033861771345375742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3033861771345375742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3033861771345375742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3033861771345375742'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/07/ago-filter-date-tag-filter-django.html' title='&quot;ago filter&quot; / date tag filter - django snippet'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-3586349252220067787</id><published>2008-06-25T19:06:00.001+08:00</published><updated>2008-07-12T00:18:07.530+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='model dialog'/><category scheme='http://www.blogger.com/atom/ns#' term='js'/><title type='text'>[转] Module Dialog In IE &amp; FF</title><content type='html'>&lt;span class="content" id="fontzoom"&gt;原文: &lt;a href="http://www.zhangsichu.com/blogview.asp?Content_Id=50"&gt;http://www.zhangsichu.com/blogview.asp?Content_Id=50&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;本文实现了一个在IE和FF下都可以正常使用的ModuleDialog。&lt;br /&gt;主要使用window.open方法打开Dialog。&lt;br /&gt;使用window.onclick=function (){DialogWin.focus()};和event.cancelBubble = true;保证弹出窗口的Module样式。&lt;br /&gt;&lt;span style="color:Red;"&gt;详细内容：&lt;/span&gt;&lt;br /&gt;&lt;span style="color:Red;"&gt;ParentWindow&lt;/span&gt;&lt;br /&gt;function OpenDialog()&lt;br /&gt;   {&lt;br /&gt;       if(window.document.all)//IE&lt;br /&gt;        {&lt;br /&gt;           //参数&lt;br /&gt;           var strPara = "dialogHeight:200px;dialogWidth:300px;help:off;resizable:off;scroll:no;status:off";&lt;br /&gt;           //传入的值&lt;br /&gt;           var strPassIn=window.document.getElementById("txtReturn").value;&lt;br /&gt;            //打开模态对话框&lt;br /&gt;           var strReturn=window.showModalDialog("ChildOpenWindow.htm",strPassIn,strPara);&lt;br /&gt;           //处理返回值&lt;br /&gt;           if(typeof(strReturn) != undefined)&lt;br /&gt;           {&lt;br /&gt;               window.document.getElementById("txtReturn").value=strReturn;&lt;br /&gt;            }&lt;br /&gt;       }&lt;br /&gt;       else//FireFox&lt;br /&gt;       {&lt;br /&gt;           //参数&lt;br /&gt;var strPara = "dialogHeight:200px;dialogWidth:300px;help:off;resizable:off;scroll:no;status:off;modal=yes;dialog=yes";&lt;br /&gt;           var strPassIn=window.document.getElementById("txtReturn").value;&lt;br /&gt;          &lt;br /&gt;            //注册事件&lt;br /&gt;           window.myAction=this;&lt;br /&gt;          &lt;br /&gt;           //打开窗口&lt;br /&gt;           var DialogWin = window.open("ChildOpenWindow.htm","myOpen",strPara,true);&lt;br /&gt;          &lt;br /&gt;            //传入参数&lt;br /&gt;           window.myArguments=strPassIn;&lt;br /&gt;          &lt;br /&gt;           this.returnAction=function(strResult){&lt;br /&gt;               //处理返回结果&lt;br /&gt;               if(typeof(strResult) != undefined)&lt;br /&gt;               {&lt;br /&gt;                    window.document.getElementById("txtReturn").value=strResult;&lt;br /&gt;               }&lt;br /&gt;           }&lt;br /&gt;          &lt;br /&gt;           //处理打开窗口最上显示（不完美）&lt;br /&gt;           window.onclick=function (){DialogWin.focus()};&lt;br /&gt;            event.cancelBubble = true;&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;span style="color:Red;"&gt;ChildWindow&lt;/span&gt;&lt;br /&gt;   function window_onload()&lt;br /&gt;   {&lt;br /&gt;       if(window.document.all)//IE&lt;br /&gt;       {&lt;br /&gt;           //对于IE直接读数据&lt;br /&gt;            var txtInput=window.document.getElementById("txtInput");&lt;br /&gt;           txtInput.value=window.dialogArguments;&lt;br /&gt;       }&lt;br /&gt;       else//FireFox&lt;br /&gt;       {&lt;br /&gt;           //获取参数&lt;br /&gt;           window.dialogArguments=window.opener.myArguments;&lt;br /&gt;            var txtInput=window.document.getElementById("txtInput");&lt;br /&gt;           txtInput.value=window.dialogArguments;&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;  &lt;br /&gt;   function OnOKClick()&lt;br /&gt;   {&lt;br /&gt;       //对于IE或者FireFox都需要设置returnValue进行返回值设定&lt;br /&gt;        var inputStr=window.document.getElementById("txtInput").value;&lt;br /&gt;       returnValue=inputStr;&lt;br /&gt;       window.close();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;   function window_onunload() {&lt;br /&gt;   //对于Firefox需要进行返回值的额外逻辑处理&lt;br /&gt;        if(!window.document.all)//FireFox&lt;br /&gt;       {&lt;br /&gt;           window.opener.myAction.returnAction(window.returnValue)&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;   &amp;lt;/script&amp;gt;&lt;br /&gt;&lt;span style="color:Red;"&gt;注册onload&lt;/span&gt;&lt;br /&gt;&amp;lt;body language="javascript" onload="return window_onload()" onunload="return window_onunload()"&amp;gt;                                                                                         &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-3586349252220067787?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/3586349252220067787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=3586349252220067787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3586349252220067787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/3586349252220067787'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/module-dialog-in-ie-ff.html' title='[转] Module Dialog In IE &amp; FF'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5056714266278300663</id><published>2008-06-23T17:59:00.001+08:00</published><updated>2008-07-12T00:18:21.868+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>本地的html如何请求remote server的资源</title><content type='html'>本地的html文件内的ajax请求如果用异步的话, 通常readyState值返回为1或者是2, 而不是期望的4,&lt;br /&gt;此时将ajax的异步改为同步即可, 此时get/post都是允许的.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5056714266278300663?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5056714266278300663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5056714266278300663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5056714266278300663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5056714266278300663'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/htmlremote-server.html' title='本地的html如何请求remote server的资源'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-4362031537648774762</id><published>2008-06-21T23:51:00.001+08:00</published><updated>2008-07-12T00:18:44.047+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lucene'/><title type='text'>一个机器学习library: Lucene Mahout</title><content type='html'>Lucene最近新加了2个子项目Tika和Mahout, Tika前文介绍过, Mahout是一个机器学习的library, 包含: Classification, Clustering, Regression, Dimension reduction, ..., 可以看出lucene的野心&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-4362031537648774762?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/4362031537648774762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=4362031537648774762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4362031537648774762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/4362031537648774762'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/library-lucene-mahout.html' title='一个机器学习library: Lucene Mahout'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-7803428494887810878</id><published>2008-06-21T23:38:00.001+08:00</published><updated>2008-07-12T00:20:29.698+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lucene'/><title type='text'>Apache 新出的工具文档解析器Tika</title><content type='html'>Apache 新出的工具文档解析器&lt;a href="http://incubator.apache.org/tika/"&gt;Tika&lt;/a&gt;, 可以支持ms系列, pdf, html, ..., 目前版本是0.1, 需要解析多种文档的同志们的福音啊&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-7803428494887810878?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/7803428494887810878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=7803428494887810878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7803428494887810878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/7803428494887810878'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/apache-tika.html' title='Apache 新出的工具文档解析器Tika'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-8205908205349509504</id><published>2008-06-20T10:30:00.002+08:00</published><updated>2008-07-29T01:03:58.091+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='config'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>web.xml中的3种写法</title><content type='html'>web.xml中&amp;lt;url-pattern&amp;gt;的3种写法&lt;br /&gt;&lt;br /&gt;a  完全匹配&lt;br /&gt;&lt;br /&gt;&amp;lt;url-pattern&amp;gt;/test/list.do&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&lt;br /&gt;b  目录匹配&lt;br /&gt;&lt;br /&gt;&amp;lt;url-pattern&amp;gt;/test/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&lt;br /&gt;c  扩展名匹配&lt;br /&gt;&lt;br /&gt;&amp;lt;url-pattern&amp;gt;*.do&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&lt;br /&gt;servlet-mapping的重要规则：&lt;br /&gt;&lt;br /&gt;容器会首先查找完全匹配，如果找不到，再查找目录匹配，如果也找不到，就查找扩展名匹配。&lt;br /&gt;如果一个请求匹配多个"目录匹配"，容器会选择最长的匹配。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-8205908205349509504?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/8205908205349509504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=8205908205349509504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8205908205349509504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8205908205349509504'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/webxml-3.html' title='web.xml中&lt;url-pattern&gt;的3种写法'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-1380646265595093859</id><published>2008-06-20T10:19:00.001+08:00</published><updated>2008-07-12T00:19:54.723+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>css实现Tag云的两端对齐方式,</title><content type='html'>HTML Align&lt;br /&gt;text-align:justify;text-justify:distribute-all-lines;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-1380646265595093859?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/1380646265595093859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=1380646265595093859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1380646265595093859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/1380646265595093859'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/csstag.html' title='css实现Tag云的两端对齐方式,'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-5077541671208970781</id><published>2008-06-20T10:18:00.001+08:00</published><updated>2008-07-12T00:21:12.560+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>用css画个图标</title><content type='html'>用css画个图标出来 #com_a{ border-top:10px solid #FFFFCC;border-left:5px solid #FF3300;border-bottom:10px solid #FFFFCC;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-5077541671208970781?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/5077541671208970781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=5077541671208970781' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5077541671208970781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/5077541671208970781'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/css.html' title='用css画个图标'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-6310716409280554604</id><published>2008-06-20T10:14:00.001+08:00</published><updated>2008-07-12T00:19:39.020+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='free installer'/><title type='text'>开源, 免费的安装程序制作工具, 可以支持Delphi脚本</title><content type='html'>下载地址: &lt;a href="http://www.jordanr.dhs.org/isinfo.php"&gt;http://www.jordanr.dhs.org/isinfo.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-6310716409280554604?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/6310716409280554604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=6310716409280554604' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6310716409280554604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/6310716409280554604'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/delphi.html' title='开源, 免费的安装程序制作工具, 可以支持Delphi脚本'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-8085184194654316943</id><published>2008-06-20T10:08:00.001+08:00</published><updated>2008-07-12T00:21:30.734+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='extends'/><title type='text'>js简单继承的实现</title><content type='html'>function base() {&lt;br /&gt;    this.member = "dnnsun_Member";&lt;br /&gt;    this.method = function() {&lt;br /&gt;        window.alert(this.member);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;function extend(child, b) {&lt;br /&gt;    b.call(child);&lt;br /&gt;}&lt;br /&gt;var child={&lt;br /&gt;   test:function(){&lt;br /&gt;      window.alert("in child");&lt;br /&gt;      window.alert(child.member);&lt;br /&gt;   }&lt;br /&gt;};&lt;br /&gt;extend(child, base);&lt;br /&gt;window.alert(child.member);&lt;br /&gt;window.alert(child.method);&lt;br /&gt;child.test()&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-8085184194654316943?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/8085184194654316943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=8085184194654316943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8085184194654316943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8085184194654316943'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/js.html' title='js简单继承的实现'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-515830932227564657</id><published>2008-06-15T01:28:00.001+08:00</published><updated>2008-07-12T00:21:47.371+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><title type='text'>getElementsByTagName返回值的问题</title><content type='html'>nodesList=getElementsByTagName返回的是一个类似NodeList的对象, 并且它的结果集动态的随元素的变化而变化, 例如将一个匹配的node从dom中remove时, 结果集将自动的remove此node，因此如果用&lt;br /&gt;for (var i=0;i=nodesList.length;i++){&lt;br /&gt;var node = nodesList[i];&lt;br /&gt;node.parentNode.replaceNode(newNode,node);&lt;br /&gt;}就遍历不完, 但是如果用for (var i=nodesList.length-1;i&amp;gt;=0;i--){...}就可以&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-515830932227564657?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/515830932227564657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=515830932227564657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/515830932227564657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/515830932227564657'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/getelementsbytagname.html' title='getElementsByTagName返回值的问题'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22809997.post-8573417903179089539</id><published>2008-06-15T01:10:00.001+08:00</published><updated>2008-06-15T01:10:48.568+08:00</updated><title type='text'>Enjoy Euro 2008</title><content type='html'>Enjoy Euro 2008 &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22809997-8573417903179089539?l=xlty.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xlty.blogspot.com/feeds/8573417903179089539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22809997&amp;postID=8573417903179089539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8573417903179089539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22809997/posts/default/8573417903179089539'/><link rel='alternate' type='text/html' href='http://xlty.blogspot.com/2008/06/enjoy-euro-2008.html' title='Enjoy Euro 2008'/><author><name>小楼听雨</name><uri>http://www.blogger.com/profile/07826686909132768252</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
